我有两个提交在同一分支,一个接一个。我将文件A的更改添加到第一次提交中,然后对其他文件进行了一些更改,然后再进行了一次提交。现在我希望文件A的更改在第二次提交而不是第一次提交。什么是最优雅的方式?我应该如何将更改从一个提交移动到另一个提交?
6
A
回答
6
如果他们是小提交,并承诺应始终小混帐,最简单的办法就是git reset HEAD^^
,然后就再次做他们。请注意,任何解决方案都涉及重写历史记录,如果您已经在某处推送了这些提交,那么除非您知道自己在做什么,否则不应该这样做。
+2
“和提交应该总是小git” 当然... – Betamos 2017-11-03 02:24:21
0
漂亮的参与答案,但基本上你壁球和重建。
0
在刚刚创建这些提交的事件中,撤消第二次提交git reset HEAD^
,然后将更改添加到第一次提交git commit --amend
。
在更有可能发生的事件中,您已经提交并且提交过去的某个时间点,重新分配是您的最佳选择。如果不知道确切的情况,引用一个可以解释它的参考文献可能是最好的。
在第一个和第二个事件中,Pro Git书籍关于重写历史的部分都很好地解释了这些选项 - 无论是何时应该使用它们,以及何时应该谨慎使用。
3
0
另一种解决这个问题
- 找到刚才的两次提交(可能这是master分支) 之前提交
- 运行
git rebase -i <commit before commits to be reordered>
(大多数情况下为git rebase -i master
) - 在文本编辑器中,交换提交的顺序(对于vim,请使用sequ ENCE
ddp
而上线应该下移) - 保存,退出,并让git的底垫做休息
相关问题
- 1. 将提交从一个分支移动到另一个分支
- 2. 如何将所有提交从一个分支移动到另一个分支?
- 3. 如何将提交移动到另一个分支?
- 4. 当一个提交包含来自另一个提交的更改时,我该如何合并?
- 5. Subversion将未提交的更改提交到一个新分支
- 6. 将多个提交从一个分支移动到另一个分支?
- 7. git合并重新提交提交到另一个提交?
- 8. 是否可以轻松地将所有提交从一个分支移动到另一个提交?
- 9. Git:从另一个提交一些提交启动一个新项目
- 10. 如何将已提交但未修改的更改移至另一个分支?
- 11. 将表单提交到另一个域
- 12. 从一个rails应用程序提交数据到另一个
- 13. 我该如何保存一个被压缩到另一个的提交时间?
- 14. 如何将一系列提交添加到另一个分支?
- 15. 如何在另一个表单中提交表单值提交
- 16. 如何在git中将旧提交移动到另一个分支?
- 17. 如何将分支(或指定的提交)移动到另一个分支?
- 18. 从另一个库提交时捕获表单提交
- 19. 提交一个或另一个查询
- 20. 使用git,如何将一些未提交的更改从一个分支移动到另一个分支中的另一个分支?
- 21. 验证一个从提交外部提交时提交
- 22. 从另一个按钮提交bootstrap contact_me
- 23. Git:移动到上一个和下一个提交
- 24. 仅提交一个实体的更改
- 25. 如何在没有共同祖先的情况下将提交从一个git repo移动到另一个
- 26. git cherry将一个提交到另一个分支
- 27. 从一个分支git副本提交到另一个
- 28. 提交信息从一个servlet到另一个
- 29. 如何直接提交按钮到另一个动作
- 30. ExtJS提交两个表单提交一个提交按钮
你可以检查git的变基[这里](https://git-scm.com/docs/git-rebase#_splitting_commits) – rumman0786 2017-04-21 16:15:14
这个问题是“挤压我最后一个X使用Git一起提交”的特例https://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using - git – 2017-05-24 20:41:03