git 使用merge 對本地分支進行合並 並進行代碼提交的流程


1.只有當將修改內容commit后 該修改才完全生效,進行merge前需要將兩個分支修改的內容都進行commit

2.假設本地兩個分支   用於開發的分支:dev    用於同步遠程倉庫的分支:master 

3.切換到master分支 進行 (git pull origin 遠程分支) 不要在master 分支進行開發(也不要在master分支進行add commit),以此保證當在master分支進行git pull 不會產生沖突(如果不慎在master分支修改了內容, 可以先撤銷所有修改,再將版本回退到沒有沖突的地方)

4.在master分支拉取了最新代碼后,如果沒有在master分支進行過開發,那么這個分支內容就是沒有沖突的最新的內容

5.切換到dev分支, 將所有的修改進行add 以及commit 然后  git merge master  將master 的分支合並過來

  • merge 遇見沖突后會直接停止,等待手動解決沖突並重新提交 commit 后,才能再次 merge
  • merge 是一個合並操作,會將兩個分支的修改合並在一起,默認操作的情況下會提交合並中修改的內容
# 需要將dev分支的修改都進行commint
python@ubuntu:~/Desktop/learning_git$ git commit -m "a=dev"
# 輸出內容, 提示該commit做了哪些修改 [dev b8b4023] a=dev 1 file changed, 1 insertion(+), 1 deletion(-) python@ubuntu:~/Desktop/learning_git$ git status 位於分支 dev 無文件要提交,干凈的工作區
# 將master分支的代碼合並過來(在此之前要保證master分支的代碼是最新的代碼)
python@ubuntu:~/Desktop/learning_git$ git merge master
# 提示有沖突, 合並失敗, 根據提示找到文件, 解決沖突后, 重新git add 和 git commit
自動合並 1.txt 沖突(內容):合並沖突於 1.txt 自動合並失敗,修正沖突然后提交修正的結果。
python@ubuntu:~/Desktop/learning_git$ git status
位於分支 dev 您有尚未合並的路徑。 (解決沖突並運行 "git commit" 未合並的路徑: (使用 "git add <文件>..." 標記解決方案) 雙方修改: 1.txt 修改尚未加入提交(使用 "git add" 和/或 "git commit -a"

6.進入文件修改沖突內容

1 <<<<<<< HEAD
2 a=dev
3 =======
4 a=6
5 >>>>>>> master

   

   <<<<<<<<HEAD

   a=dev

   =======

 

   (當前所在分支的內容) 

 

=======
a=6 >>>>>>> master
(master分支的內容,修改沖突)

7.修改完沖突以后重新 git add git commit 然后就可以 git push 提交代碼了.這里如果因為某些原因,本地的開發分支進行了版本回退,這樣的話因為本地代碼的版本落后於遠程的分支,所以git是不允許進行提交代碼的,這時就需要確認是否需要保留遠程分支的代碼,如果需要保留,那么就需要先拉取一下遠程分支的代碼到本地進行合並,然后再進行開發或修改,如果遠程分支的代碼是受到污染的,需要保留的是本地分支的代碼, 那么就可以放心進行開發,完成后使用命令
git push origin 遠程開發分支名稱 -f
進行強制性推送代碼,覆蓋遠程分支的代碼為當前版本的代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM