如何用git覆盖新的提交?

时间:2016-02-21 23:38:39

标签: git github

所以我正在与一个团队合作开展敏感项目,我们所有的资源都在Github上。我最近推了一个提交,后来意识到我的推动中有很多错误。我已经修复了我本地副本上的所有错误,并准备再次推送。但是有什么方法可以推送和覆盖我的上次提交吗?我的理由是,我不希望其他人查看我的初始提交及其所做的更改......

基本上我想用新的提交覆盖旧提交..所以没有关于旧提交的信息仍然可供其他组成员查看。

任何帮助将不胜感激!谢谢。

注意:注意到此问题已标记为重复。为了澄清,我的问题是覆盖已经被推送的提交。我的问题不是更改不正确的提交消息。

2 个答案:

答案 0 :(得分:25)

通常,一旦Github(或公共回购)出现问题,就没有办法让确定没有其他人犯错。

如果您只想要更清晰的代码历史记录,那么按照您的要求执行操作的方法要求您在本地和远程项目中覆盖历史记录。

如果您尚未根据更改创建新的提交,那么您想要执行git commit --amend修改旧提交。

如果您已经创建了新的提交,则需要使用git rebase -i来压缩旧提交。

在本地进行此更改并验证您的提交看起来是您想要的方式后,您必须git push --force覆盖Github遥控器上的历史记录。

这是一个关于如何在git中重写历史的教程,它解释了this answer中列出的两种方法。

答案 1 :(得分:1)

我不建议你这样做,因为GIT并不意味着删除和/或编辑提交。您可以恢复以前的提交,然后再次提交“有效”代码。

或者你可以Rebase你的分支。 或者看看这个Answer

相关问题