dev和master合並沖突解決


前景

master主分支,dev是開發分支,master會保持最新的dev代碼

問題的產生

  1. dev開發新功能
  2. 版本發布,dev合並到了master,發布生產環境
  3. 新需求來了,在dev進行開發
  4. 同時,線上代碼有bug,從master拉新分支,改bug,之后合並到master
  5. master與dev這時代碼不一致,以后合並有可能會有沖突
  6. dev開發完成,上線前,先與最新master做一下rebase,解決沖突
  7. git rebase會根據你的git commit進行沖突解決,每次都要進行git rebase --continue,這是比較煩人的
  8. git log找到dev是在哪個commit里合並到master的,找到后git reset --soft 把dev新需求合並成一個commit
  9. 最后再git rebase就可以了

相關git命令

找與master相同代碼時的commit id

$ git log
commit 9f4c0939ce30aca3f4e18e69b2deed7b721b3ebb (HEAD -> master)
Author: lind <bfyxzls@sina.com>
Date:   Sat Apr 27 12:45:24 2019 +0800

    master2

commit 09b6898a5b32ac5e23745f7b343424170869045a
Author: lind <bfyxzls@sina.com>
Date:   Sat Apr 27 12:44:48 2019 +0800

    master1

commit c9507744d6528a3df9529d92953c896a4c2d38a7
Author: lind <bfyxzls@sina.com>
Date:   Sat Apr 27 12:43:28 2019 +0800

    dev2

commit 817d0275820c83acdf5513a5fd5855a6eb84443c
Author: lind <bfyxzls@sina.com>
Date:   Sat Apr 27 12:42:59 2019 +0800

合並commit

$ git reset --soft  c9507744d6528a3df9529d92953c896a4c2d38a7
$ git add .
$ git commit -m "合並commit"

在rebase時,沖突提交數為1個,之前是dev有幾次新的提交,就要解決幾次

$ git rebase master
Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)

解決沖突,刪除或者保留對應的代碼,最后再保存,提交即可

Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
$ git add .

Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
$ git rebase --continue
Applying: 合並commit

Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev)


免責聲明!

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



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