在git合併**時,常需要解決衝突,不熟悉git的原理,就會陷入問題影響工作效率。我一同事在合併**時第二次遇到了這樣的問題:
合併**後找不到檔案,還沒push到遠端,本地也沒找到刪除遺失檔案的記錄,再次pull要合併的分支也拉取不到被revert掉的檔案。後來仔細回想操作步驟,重現了問題,原來是有玄機的。
git commit 和git merge commit 之間是存在區別的,當git merge commit 途中對檔案進行revert,git在當前版本的控制就會預設丟棄此分支上的檔案,即使再次pull要合併的**分支,也是pull不到那些被revert掉的檔案的。
在使用 git merge 合併兩個分支之後,你將會得到乙個新的 merge commit
merge commit 和普通 commit 的不同之處在於 merge commit 包含兩個 parent commit,代表該 merge commit 是從哪兩個 commit 合併過來的。
有一篇檔案說明得非常詳細:
Git 合併時 no ff 的作用
在許多介紹 git 工作流的文章裡,都會推薦在合併分支時,加上 no ff引數 git checkout develop git merge no ff feature no ff在這的作用是禁止快進式合併。git 合併兩個分支時,如果順著乙個分支走下去可以到達另乙個分支的話,那麼 git 在合併兩...
git多分支合併時的坑
有兩個分支,master和基於master建立的dev分支 master分支對檔案a執行了移動路徑的操作 rename dev分支也對檔案a執行了相同的移動路徑的操作 rename 現在,想要把dev分支合併回master分支,檔案a會不會衝突?合併結果 實際測試一下,發現不會衝突,因為兩邊相對位置...
git設定不合併的檔案
乙個最簡單的做法,通過新增.gitattributes檔案來完成 1 在要被合併的分支中設定 git config global merge.ours.driver true設定git配置項merge不合併的具體分支上的內容的 2 在要被merge的分支上建立.gitattributes檔案,並且在...