如何將某一個分支的部分程式碼合併到另外一個分支上面
阿新 • • 發佈:2021-10-21
轉 https://www.cnblogs.com/liuminxiu0707/p/14778428.html
需求:我在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-pickb5dc0dd
如下圖;為了防止混淆,本人將該功能對應的提交都記錄下文字文件了
注意:
1. 單個commit合併
git cherry-pick commitid
2.多個分開的commit一起合併
git cherry-pickcommit-id1commit-id3commit-id6
3. 多個連續的commit合併
git cherry-pick commitid1..commitid8 將commitid1到commitid8之間的所有提交合併到B分支上(不包含第一個commitid)
每一次合併都可能會產生衝突,如果產生衝突,先解決衝突,然後將程式碼commit到本地倉庫即可;
測試無誤之後,再將合併後的程式碼push到遠端倉庫。切記!