我的git提交有点搞砸了,我想知道我是否可以将它们全部压缩在一起,然后从提交中“提取”一些提交。
假设我在一次提交中有这些文件: upload.py, moderate.py, upload.html, moderaion.html
如何将其拆分为两次这样的提交? 上传: upload.py, upload.html
适度: moderate.py, moderaion.html
答案 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上的示例。