如何在特定提交后覆盖所有提交而不必 git 拉取?
How to overwrite over all commits after a specific commit without having to git pull?
我 git reset --hard <specific commit from earlier>
然后做了一些新的提交。当我尝试推送这些新更改时,系统提示我 git 拉取 <specific commit from earlier>
之后所做的更改。我正试图覆盖这些更改 git 提示我拉。这是一个简单的项目,所以我只有一个主分支。什么是最好的纠正方法?
您可以使用此命令强制推送您的更改:
git push origin <your_branch_name> --force
通过执行 git reset --hard <earlier commit>
然后尝试推动它,您实际上是在尝试修改历史记录(通过删除它)。除非在 git push
.
上给出 --force
或 --force-with-lease
(最好)标志,否则不允许修改历史记录
请记住,如果其他人拥有旧版本的分支,您可能需要通知他们,以便他们可以更正副本以匹配新的历史记录。
更多信息请见 man git-push。
我 git reset --hard <specific commit from earlier>
然后做了一些新的提交。当我尝试推送这些新更改时,系统提示我 git 拉取 <specific commit from earlier>
之后所做的更改。我正试图覆盖这些更改 git 提示我拉。这是一个简单的项目,所以我只有一个主分支。什么是最好的纠正方法?
您可以使用此命令强制推送您的更改:
git push origin <your_branch_name> --force
通过执行 git reset --hard <earlier commit>
然后尝试推动它,您实际上是在尝试修改历史记录(通过删除它)。除非在 git push
.
--force
或 --force-with-lease
(最好)标志,否则不允许修改历史记录
请记住,如果其他人拥有旧版本的分支,您可能需要通知他们,以便他们可以更正副本以匹配新的历史记录。
更多信息请见 man git-push。