如何在特定提交后覆盖所有提交而不必git pull?

时间:2018-03-18 16:08:04

标签: git git-reset

git reset --hard <specific commit from earlier>然后做了一些新的提交。当我尝试推送这些新更改时,系统会提示我执行git pull以获取<specific commit from earlier>之后所做的更改。我试着写下这些改变,git正在促使我拉。这是一个简单的项目,所以我只有一个主分支。什么是纠正的最好方法?

2 个答案:

答案 0 :(得分:0)

您可以使用此命令强制推送更改:

git push origin <your_branch_name> --force

答案 1 :(得分:0)

通过执行git reset --hard <earlier commit>然后尝试推送它,您实际上是在尝试修改历史记录(通过删除它)。除非在--force上提供--force-with-leasegit push(最好)标记,否则不允许修改历史记录。

请注意,如果其他人拥有旧版本的分支机构,您可能需要通知他们,以便他们可以更正其副本以匹配新的历史记录。

man git-push的更多信息。