Git:压缩所有然后“提取”一些提交

时间:2009-08-11 20:15:58

标签: git

我的git提交有点搞砸了,我想知道我是否可以将它们全部压缩在一起,然后从提交中“提取”一些提交。

假设我在一次提交中有这些文件: upload.py, moderate.py, upload.html, moderaion.html

如何将其拆分为两次这样的提交? 上传: upload.py, upload.html

适度: moderate.py, moderaion.html

2 个答案:

答案 0 :(得分:2)

首先,您可以将所有提交与git rebase --interactive X一起压缩(其中X是您想要压缩的提交的父级)。之后再次运行git rebase --interactive X,但现在按照git-rebase's manual中的描述拆分压缩的提交。

在开始变基之前,最好记下当前的头部提交。记下它的哈希值或创建一个新的标签/分支。这样您就可以轻松恢复所有更改并重试。

答案 1 :(得分:1)

你的问题意味着提交已经很混乱了,但是如果提交本身是'原子'但只是错误的顺序,你也可以使用git rebase --interactive将它们按正确的顺序排列,然后压缩它们。这可能会让事情变得更加容易。

如果提交已触及多个区域,并且您想再将它们拆分,git rebase -i可以提供帮助。另请参阅Bart's blog上的示例。