2016-11-08 108 views
1

我正在玩弄我的git存儲庫,並在之前向master分支提交了相當數量的提交。現在我意識到它有點太吵,並希望將所有這些合併成一個提交。Git將所有提交的原始/主文件提交到原始/主文件中的單個提交

102381 commit z 
.... 
176232 commit a 
891273 initial commit 

簡單

198273 initial commit (after rebase) 
891273 initial commit 

我環顧四周,許多的解決方案,似乎周圍的擠壓。不幸的是,考慮到一切都在主分支上,這可能是可能的。

我的一個初步想法是

  1. 創建一個新的分支從提交#891273
  2. 壁球一切從主到新的分支
  3. 刪除舊主人,這一新的替換分支

我不確定這是否是一種很好的方法;認爲獲得一些想法,指導和討論會更明智。

回答

1

找到一種簡單的方法來實現你的要求:

  1. git checkout –b branch1。創建一個新的分支從提交#891273,

  2. git rebase –i master

  3. 等待編輯器來輸入(類型i開始輸入):

    pick 176232 commit a

    squash ****** commit b

    ......

    squash 102381 commit z

注:輸入 'Esc鍵' 按鈕停止輸入

  • 輸入:wq退出編輯器,然後你會發現你想要的
  • 注意:當壓縮提交到z時,它可能有衝突。您需要解決衝突的文件,並使用git添加文件名,git的變基--continue繼續擠壓

    參考: https://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit

    2

    您可以簡單地執行軟復位到891273,然後進行提交。 這會將分支重置爲第一次提交,並保留暫存區域中更改的重置,您可以在下一步中提交該更改區域。

    git reset --soft 891273 
    git commit -m 'Second Commit' 
    

    這樣你就會在你的倉庫中有兩個提交。

    相關問題