重写git提交历史记录

时间:2013-03-20 02:54:27

标签: git git-rebase

假设我们有一个git提交历史,如下所示:

  

ZZ [origin / master] A - > B - > C - > D - > E [主人]

我们希望:

  • 将历史记录回溯到A之前。
  • 保留E
  • 的工作目录
  • A..E的所有更改集捆绑到一个提交中。
  • 将结果推送到远程。

结果如下:

  

ZZ - > XX [master] [origin / master]

其中XX是包含先前提交更改的提交A..E

1 个答案:

答案 0 :(得分:3)

您可以尝试:

git reset --hard E
git reset --soft ZZ
git commit 'comment'
git push orgin master
  

<强> - 软

     

根本不触摸索引文件或工作树(但是将头重置为,就像所有模式一样)。这将保留所有已更改的文件“要提交的更改”,因为git status将为putit。