簡體   English   中英

重新設置 git 存儲庫以將多個提交合並為一個,但使用合並提交?

[英]Rebase a git repository to merge multiple commits into one, but with a merge commit?

這是我一直遇到的問題,可能是由於不良習慣造成的,但我一直無法找到解決方案。 基本上,假設我在一個特性分支上工作了一段時間,而且我的提交很草率,所以我有很多提交,而且我也參與了幾次開發以跟上進度。 它可能看起來像這樣:

#jfdaa My commit
#fkljd My Commit
#4kfdf Merge Commit
#43252 My Commit
#25525 My Commit

但我希望它看起來像這樣:

#3953h Merge Commit
#fdsaf My Commit

有沒有好的方法來做到這一點?

如果您的所有提交都在合並之后,則無需合並。

不要從開發中合並,而是將您的分支重新定位在開發之上。 然后根本沒有合並提交。 歷史是美好的和線性的,就好像你一直在努力發展一樣。

      C - D - M - G - H [feature]
     /       /
A - B - E - F [develop]

git checkout feature
git rebase develop

              C1 - D1 - G1 - H1 [feature]
             /
A - B - E - F [develop]

這避免了許多沒有價值的不必要的“更新”合並,它們只會使歷史難以閱讀。

您可以使用拉取(提取和合並),使用git pull --rebase進行變基,並始終merges pull.rebase

然后,您可以根據需要使用交互式 rebase 壓縮和修復您的提交。

git rebase -i develop

按照彈出的編輯器中的說明進行操作。 有關更多信息,請參閱Pro Git 中的重寫歷史記錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM