Git: 四種將分支與主線同步的方法

Git: 四種將分支與主線同步的方法

四種將分支與主線同步的方法

先來做名詞解釋和看一些範例。

名詞解釋

範例

看更多

說明

方法一:git pull

$ git checkout <new_branch>
$ git pull origin master

以上作法同方法二:git fetch + git merge

加入參數 --rebase,這樣就會以 rebase 的方式合併(同註一)。

$ git checkout <new_branch>
$ git pull origin master --rebase

方法二:git fetch + git merge

$ git fetch origin master
$ git checkout master
$ git merge origin/master

$ git checkout <new_branch>
$ git merge master

以下是更簡單的作法,不更新本地 master 分支,直接與本地分支 origin/master 合併。

$ git fetch origin master
$ git merge origin/master

方法三:git fetch + git rebase

$ git fetch origin master
$ git checkout master
$ git merge origin/master

$ git checkout <new_branch>
$ git rebase master

也可以這樣寫,不切換到新分支,直接指定新的基準點。

$ git fetch origin master
$ git checkout master
$ git merge origin/master

$ git rebase master <new_branch>

以下是更簡單的作法,不更新本地 master 分支,直接以 origin/master 為新的基準點,將新分支所修改的程式碼紀錄接在後面。

$ git fetch origin master
$ git rebase origin/master
註一

方法三的意義等同於 git pull origin master --rebase

方法四:git cherry-pick

$ git fetch origin master
$ git checkout <new_branch>
$ git cherry-pick origin/master

但不建議使用這個方法,因為在 graph 中並不會顯示合併,而是將 master 的某些提交紀錄「揀選」到新分支形成分岔。並且,之後若要合併回主線,仍須再解一次衝突。解完 conflict 後若無差異,則會回到使用 cherry-pick 合併後的狀況(註 2)。由於找不到類似的資料,因此在這裡提問。

註 2

之後要合併回主線仍需使用前三種方法,例如:使用 git pull origin master,這樣就會形成一個小耳朵,表示回到主線了。

More

How to rebase local branch with remote master


comments powered by Disqus