我剛剛同步了我的git repo並遇到了迴歸。我只想簡單介紹一下歷史,直到我找到承諾的責任,但是當我做git log
時,出現了一個巨大的合併,它顯示爲單個提交。如何將合併合併爲線性歷史記錄?
有沒有什麼辦法可以在我的本地分支中合併這個合併,所以git log
只是有一個線性歷史,我可以走過?
我剛剛同步了我的git repo並遇到了迴歸。我只想簡單介紹一下歷史,直到我找到承諾的責任,但是當我做git log
時,出現了一個巨大的合併,它顯示爲單個提交。如何將合併合併爲線性歷史記錄?
有沒有什麼辦法可以在我的本地分支中合併這個合併,所以git log
只是有一個線性歷史,我可以走過?
Git rebase是你所追求的。
你在找什麼是interactive rebase。
您可以通過git rebase -i master
來反駁主人。你應該看到類似於
pick ba6b4b7 Commit messages here
pick 744ea3b Another commit message
pick 33539d5 Commits all around!
然後,您可以將第一個「pick」選項更改爲「squash」。這將壓制他們全部進入頂級提交。您也可以將頂部的「選擇」更改爲「修復」以更改其提交消息。
除了實際的rebase,你還可以微調你的查詢。對於每個合併,git log --topo-order $head
將在合併提交之後列出合併分支的所有內容。它看起來就好像你重新設計了那個分支。