2011-04-01 113 views
4

我見過很多關於使用git commit --amend的博客文章,或者重新壓縮提交。壓扁和重組提交

我發現將git重置爲最後一個檢查點(比如在我的所有'保存點'微提交之前說)比較容易一些,然後使用交互式添加來挑選最佳提交順序。

這是否有缺點?
我想知道B/C爲我讀的大多數博客使用修改或爲此目的使用底座

回答

6

缺點是您可以再次選擇所有單個文件,以便在提交中再次對它們進行分組。

如果您的提交需要組合在一起(而不必在這些提交中添加或刪除文件),那麼rebase - 交互更容易:您提交文件集的原因。
其實,有了正確的提交意見,rebase --interactive --autosquash可以爲您重新排序。

如果您的提交純粹是中間保存點,沒有考慮到它們在文件集方面的構成,那麼您的解決方案就足夠了。

+0

謝謝馮!我已經看到你的其他答案,他們都很棒,有針對性的建議 – ambertch 2011-04-01 20:14:09

3

要添加到VonC的答案,它取決於你有多少提交。

發生在我身上什麼最經常是這樣的:在一個

  • 工作,提交
  • 工作在B,提交
  • 哦,不!我錯過了一個重要的東西,提交修正一個

與互動變基,它是微不足道的重新排序,然後壓扁修正到原來的承諾爲A.

另一個例子是,當我只是想重新提交一條提交消息。

另一個例子是,當我有這樣的事情

A-------------------master 
\ 
    B-----C-----D-----branch 

,我想結合ç& d但 B插入主。我可以使用rebase重新排序我的分支提交到C,D,B,然後git checkout mastergit merge D

+0

我重新排序提交後,我如何做最後一個例子的最後一步?離開B(現在是最後一次提交),git合併分支? – ambertch 2011-04-01 20:22:00

+0

@ambertch,不,只是'git合併D'。 – Benjol 2011-04-03 20:13:05