如何將某一個分支的部分代碼合並到另外一個分支上面


需求:我在A分支上面開發了一個功能,突然B分支說也需要這個功能,但是不想要合並A分支上所有的代碼;只需要合並這一個功能對應的代碼

方案:

1. 在A分支上通過git log 查看日志;將自己提交的該功能對應的hash值整理出來;

    git log

2.如果本地沒有B分支,需要先將B分支從遠程倉庫拉到本地倉庫(如果本地有B分支,並且已與遠程對應的B分支已關聯;無需這一步,直接到下一步)

   git checkout --track origin/B

3.切換到B分支

   git checkout B

4.在B分支上操作:通過git cherry-pick <commit對應的hash值>將當前hash對應提交的代碼合並到B分支上去

  git cherry-pick  b5dc0dd

如下圖;為了防止混淆,本人將該功能對應的提交都記錄下文本文檔了

注意:

1. 單個commit合並 

    git cherry-pick commitid

2.多個分開的commit一起合並

  git cherry-pick commit-id1 commit-id3 commit-id6

3. 多個連續的commit合並

 git cherry-pick commitid1..commitid8  將commitid1到commitid8之間的所有提交合並到B分支上(不包含第一個commitid)

每一次合並都可能會產生沖突,如果產生沖突,先解決沖突,然后將代碼commit到本地倉庫即可;

測試無誤之后,再將合並后的代碼push到遠程倉庫。切記!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM