跳轉到

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

方法二:RebaseRebase --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>