Git 将大块头重新组织为提交
我对一些代码进行了重大重构,在此过程中,我已经提交了几次。这还没有被推到任何公开回购。在推之前,我想现在将提交重新组织为逻辑单元。问题是,我不仅想挤压提交,还想将大块重新组织到其他提交中 为了说明这一点,我将A和A1、A2、A3组合,B和B1、B2、B3组合。我想签出A之前的版本,并用大块A1、A2、B2签出新的提交C,用大块B1、B3、A3签出新的提交DGit 将大块头重新组织为提交,git,commit,squash,Git,Commit,Squash,我对一些代码进行了重大重构,在此过程中,我已经提交了几次。这还没有被推到任何公开回购。在推之前,我想现在将提交重新组织为逻辑单元。问题是,我不仅想挤压提交,还想将大块重新组织到其他提交中 为了说明这一点,我将A和A1、A2、A3组合,B和B1、B2、B3组合。我想签出A之前的版本,并用大块A1、A2、B2签出新的提交C,用大块B1、B3、A3签出新的提交D 提前感谢。看一看git-rebase。听起来你想要一套完全不同的提交。如果是这种情况,只需返回原点(例如git reset origin/m
提前感谢。看一看
git-rebase
。听起来你想要一套完全不同的提交。如果是这种情况,只需返回原点(例如git reset origin/master),然后重复使用git add-p和git commit,直到完成为止。如果需要,您可以在提交后使用git stash测试每个提交,并使用git--amend来修复任何错误
或者,git-rebase-i实际上可以拆分提交。阅读手册页,这并不难,但有点麻烦。对于这样一个复杂的重组,最简单的事情可能是首先完全拆分您的提交,然后再进行第二次交互式重基以根据需要重新排列和挤压它们。另一个重要提示是,您可以使用
git stash
来提供很多帮助:在reset HEAD^
将分支提示移回后,为第一次拆分提交添加所需内容,运行git stash--keep index
隐藏所有未添加的更改,但保留索引,测试其中的内容,提交,然后使用git stash pop
取回其余内容。这样,您就可以干净地测试您正在提交的内容,就好像您只智能地进行了这些更改一样。泡沫,冲洗,重复@杰弗罗米,我认为你应该把这些评论作为自己的回答。我认为这是个好建议。