1. 程式人生 > >第27月第24天 git pull fetch

第27月第24天 git pull fetch

1.

 

在進行 pull 操作的同時,其實就是 fetch+merge 的一個過程。我們從 remote 分支中拉取新的更新,然後再合併到本地分支中去。

  1. 如果 remote 分支超前於本地分支,並且本地分支沒有任何 commit 的,直接從 remote 進行 pull 操作,預設會採用 fast-forward 模式,這種模式下,並不會產生合併節點,也就是說不會產生多餘的那條 log 資訊
  2. 如果想之前那樣,本地先 commit 後再去 pull,那麼此時,remote 分支和本地會分支會出現分叉,這個時候使用 pull 操作拉取更新時,就會進行分支合併,產生合併節點和 log 資訊。這兩種狀態分別如下圖所示:

為了去除自動生成的 log 資訊,有以下幾種解決方案:

  1. 如果你使用的是 Git Bash,直接使用 git pull --rebase。如果拉取不產生衝突,會直接 rebase,不會產生分支合併操作,如果有衝突則需要手動 fix 後,自行合併。
  2. 如果使用的是 GUI,例如 TortoiseGit,可以先 fetch,再手動 rebase 就可以了。

https://www.cnblogs.com/Sinte-Beuve/p/9195018.html