2016-06-11 59 views
1

我有幾個「保存點」提交,並希望壓扁他們有一個更可讀的時間表。這裏是我的情況:如何做git南瓜承諾給定的提交消息

> git log 

29a94be3d2d4f Added some feature 
9bf0f2730234e savepoint   << Pushed here 
240e1ce8893e9 Add ignore rule 
01462e889d416 savepoint 
6238e3b775027 Fixed Something << Pushed here 
0d485486a42a9 Update Version 
...... 
06ad9e4fc5f64 savepoint 
1462e57657434 Initial Commit 

我想有

29a94be3d2d4f Added some feature 
240e1ce8893e9 Add ignore rule 
6238e3b775027 Fixed Something 
0d485486a42a9 Update Version 
1462e57657434 Initial Commit 

是有辦法的腳本這一點,所以我可以說:

git squash -commits-with-log="savepoint" ~FROM_INITIAL_COMMIT

+2

你的''Pushe這裏的符號表示?如果您已將這些內容推送到某個遠程服務器或以其他方式使其發佈,那麼您在這些點之前或之前所做的任何更改都將要求使用*這些已發佈的提交的任何其他人,*還*採取行動。如果沒關係,你可以重新打底,如果沒有,你不能。 – torek

+0

這讓我想起http://stackoverflow.com/a/2302947/6309,但它並不完全適用於你的情況。 – VonC

回答

0

更新:似乎訣竅在於GIT_SEQUENCE_EDITOR變量

+0

爲了擴大這個範圍,[這裏](https://stackoverflow.com/a/46403701/5037965)是一個很長的答案,它使用'GIT_SEQUENCE_EDITOR'來自動化使用'git rebase -i'來壓縮類似的提交。 –