1.背景介紹
系統上線了,但是產品經理又提了新的需求,評估一下工期要兩個月,但是同時系統正在上線運行,時不時還要修改bug,如何管理幾個版本?
2.相關命令
創建分支
git branch <分支名>
查看分支
git branch –v
切換分支
git checkout <分支名>
一步完成: git checkout –b <分支名>
合併分支
先切換到主幹 git checkout master
git merge <分支名>
創建和查看分支
切換分支
如果在新分支中新增文件,此時切換成舊分支,會將文件存在本地庫,這樣就能保證切換爲新分支時,新增文件也會出現
合併分支時,需要先切換到主幹分支上 git checkout master
3.衝突
衝突一般指同一個文件同一位置的代碼,在兩種版本合併時版本管理軟件無法判斷到底應該保留哪個版本,因此會提示該文件發生衝突,需要程序員來手工判斷解決衝突。
合併時衝突
程序合併時發生衝突系統會提示CONFLICT關鍵字,命令行後綴會進入MERGING狀態,表示此時是解決衝突的狀態。
解決衝突
此時通過git diff 可以找到發生衝突的文件及衝突的內容。
然後修改衝突文件的內容,再次git add 和git commit 提交後,後綴MERGING消失,說明衝突解決完成。
演示
先修改主分支的文件
再修改子分支的文件
切換到主分支合併時,會出現以下問題
此時衝突文件會變成這樣
=======上面的表示當前分支文件的內容,下面的表示子分支文件的內容
重點突出的是兩個衝突文件之間不同的部分
此時修改該文件,將相應註釋刪除即可
此時再次git add即可