下面,經過一個實例來演示,模擬開發中的一種衝突的狀況:git
在本地文件中建立一個git倉庫:指針
可見,此時,HEAD指針指向master分支。 而後新建文件, readme.txt , 添加內容: the content belongs to master :code
最後add、commit :圖片
建立、切換到dev分支:開發
$ git checkout -b dev Switched to a new branch 'dev'
而後,用git branch命令查看當前分支:it
$ git branch * dev master
修改readme.txt 的內容, 修改成:io
the content belongs to master the content belongs to dev
而後add、commitast
$ git add readme.txt
$ git commit -m "commit in dev" [dev 989b97f] commit in dev 1 file changed, 1 insertion(+), 1 deletion(-)
再切換到master分支:file
$ git checkout master Switched to branch 'master'
$ git branch dev * master
如今,master分支和dev分支各自都分別有新的提交,變成了這樣:im
將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看看分支的合併狀況: