如何在一个已经推送到暂存的提交中恢复一堆补丁?

时间:2016-10-15 22:58:39

标签: git github

情况是这样的, 我在开发部门。然后我做了git format-patch staging所以它生成了很多.patch文件,因为我已经在这个大模块上工作了2个月而且没有一个被推到升级版。现在已经生成了补丁文件,我检查了暂存分支并通过git am --3way the-name-of-the-patch-file.patch应用了每个补丁。使用--3way git命令,如果没有冲突,则应用的补丁将自动提交。然后为了最大限度地减少github桌面客户端泛滥补丁的过多提交,我做git log --oneline以查看降序排序的所有提交头并执行git reset the-head-of-the-last-commit-before-my-first-patch。然后我的所有修补文件都没有跟踪,因此我添加了每个文件以进行提交。所以在我提交并推送之后,我现在只有一个提交/推送暂存包含所有我提交的补丁,问题是,我错过了其中一个文件中的内容。我在应用补丁期间忘记删除=======adf234235,现在它导致语法错误。现在的问题是,如何将我推送的提交删除到暂存,以便我可以再次重新应用补丁并确保一切都已正确?

注意:我不是回购的唯一用户。请提出一个安全的方法来解决这个问题。感谢

1 个答案:

答案 0 :(得分:0)

通常,您不希望删除或更改任何已推送的提交。只需推送一个修复问题的新提交,然后告诉任何使用repo的人再次拉动。

有关更改推送提交的更多讨论,请参阅此处: http://christoph.ruegg.name/blog/git-howto-revert-a-commit-already-pushed-to-a-remote-reposit.html