下面,通過乙個例項來演示,模擬開發中的一種衝突的情況:
準備工作
第一步在本地檔案中建立乙個git倉庫:
可見,此時,head指標指向master分支。
然後新建檔案, readme.txt , 新增內容: the content belongs to master :
最後add、commit :
第二步建立、切換到dev分支:
$ git checkout -b dev
switched to a new branch 'dev'
然後,用git branch命令檢視當前分支:
$ git branch
* dev
master
修改readme.txt 的內容, 修改為:
the content belongs to master
the content belongs to dev
然後add、commit
$ git add readme.txt
$ git commit -m "commit in dev"
[dev 989b97f] commit in dev
1 file changed, 1 insertion(+), 1 deletion(-)
再切換到master分支:
$ git checkout master
switched to branch 'master'
$ git branch
dev* master
中途休息
現在,master分支和dev分支各自都分別有新的提交,變成了這樣:
開始合併
將dev合併到master , 會出現衝突:
直接檢視readme.txt的內容:
<<<<<<< head
the content belongs to master
the content belongs to master
the content belongs to dev
>>>>>>> dev
git用<<<<<<>>>>>>標記出不同分支的內容,我們修改如下後儲存:
the content belongs to master
the content belongs to dev , too
再提交:
$ git add readme.txt
$ git commit -m "conflict fixed"
[master 6bbd9b3] conflict fixed
現在,master分支和dev分支變成了下圖所示:
可以用git log看看分支的合併情況:
end
git 找到衝突 Git如何解決衝突
當您在乙個團隊中工作的時候,當有人將更改推送到您當前正在處理的檔案時,您可能會遇到這種情況。如果這些更改不重疊 即對不同的 行進行了更改 則會自動合併衝突的檔案。但是,如果同一行受到影響,則git不能隨意選擇另一方,並要求您解決衝突。在git中,當您嘗試執行下列操作之一時,衝突可能會出現 pull ...
git 提交時發生衝突,如何解決?
提交的時候常常會發生衝突的情況,尤其是協同開發的情況下。在合併分支的時候,master分支和dev分支恰好有人都修改了同乙個檔案,git不知道應該以哪乙個人的檔案為準,也就是說兩個分支相同檔案相同位置的的不同操作!所以就產生了衝突了。發生衝突,在ide裡面一般都是對比本地檔案和遠端分支的檔案,然後把...
git如何解衝突 如何解決Git中的合併衝突
我發現合併工具很少能幫助我理解衝突或解決方案。我通常更成功地在文字編輯器中檢視衝突標記並使用git log作為補充。提示一我發現的最好的事情是使用 diff3 合併衝突樣式 git config merge.conflictstyle diff3 這會產生如下衝突標記 the common ance...