2017-03-31 54 views
2

我在一個項目中編寫了一個跨越數千個修改過的行的特性,現在這一切都以一個大提交結束(我壓扁了正在進行的提交)。現在我想將這些更改分成多個提交,以便更容易查看/可能有多個PR。我應該使用什麼工具將git commit分割爲多個?

一些文件包含應在不同的提交結束了多處更改,所以我要尋找一個使用三窗格一個所見即所得的編輯器,可以讓我將一些線路的中間提交,同時看到了以前和以後的版本(+一些手動更改)。我使用IntelliJ IDEA進行開發,所以我想象一些類似於衝突解決對話的東西。

我可以切換到不同的分支/標記單一提交版本,並做Git->與分支比較(並從那裏抓取更改),但我正在尋找更方便的東西。

雖然這可能被標記爲偏離主題/自以爲是,但我認爲針對不同工作流程的中立建議可能很有價值。

回答

1

不確定某個工具是否允許您執行此操作,但根據git documentation,您可以使用內置rebase函數分割一個提交。喜歡的東西:

git rebase -i 
... 
pick abc1234 the commit I wanna keep 
edit 5904fjl THE COMMIT I WANT TO SPLIT 
pick alkj022 my latest commit to keep 

該運行git reset HEAD^後,你可以手動打破了你變成提交。您可以使用git add --patch更容易地將您的文件內更改拆分爲提交。或者如果你的Intellij IDE有一個好的git GUI,你可以使用它。至少在我的經驗中,分裂必須從命令行完成。

+1

'git gui'通常也有幫助。只有在'git gui'拒絕索引行時,我纔會使用'git add -i' –

+0

'git add --patch'似乎非常接近,儘管它不能輕易看到大塊。 –

相關問題