Synchronizing branches
方法一:Merge¶
取得遠端資料並更新本地 develop 程式碼,並將 develop 的程式碼合併至新分支中(HEAD 指向新分支的程式碼)
git fetch origin develop
git checkout develop
git merge origin/develop
git checkout <new-branch>
git merge develop
不更新本地 develop 分支,直接與本地分支 origin/develop 合併
git fetch origin develop
git merge origin/develop
方法二:Rebase 和 Rebase --onto¶
1. Rebase¶
取得遠端資料並更新本地 develop 程式碼,並以 origin/develop 為新的基準點,將新分支所修改的程式碼紀錄接在後面
git fetch origin develop
git checkout develop
git merge origin/develop
# 第一種作法
git checkout <new-branch>
git rebase develop
# 第二種作法
git rebase develop <new-branch>
不更新本地 develop 分支,直接以 origin/develop 為新的基準點,將新分支所修改的程式碼紀錄接在後面
git fetch origin develop
git rebase origin/develop
git pull origin develop --rebase
2. Rebase --onto¶
取得遠端資料並更新本地 develop 程式碼,將特定範圍(視基準點而定)的提交接在後面
git checkout develop
git pull origin develop
git checkout <new-branch>
git rebase --onto develop <commit>
假如以 branch out 的提交作為基準點,即可達到和 rebase 相同效果
方法三:Cherry-Pick¶
取得遠端資料並更新本地 develop 程式碼,接著切換到新分枝將 develop 的某些提交紀錄「揀選」到新分枝:
git cherry-pick origin/develop
或是一個一個 commit 搬
git cherry-pick <commit>