Git 还原或硬重置

Git revert or hard reset

情况是这样的
我已经对 public 回购做出了自己的承诺,客户认为干涉是个好主意。

所以他更改了一些文件,添加了他自己的文件并删除了我的一些文件。

明确地说,我想将所有内容推送到 public 回购,就像我上次提交时一样,我自己做了一些小改动,并丢弃他所做的一切。

当我这样做时 git reset --hard <commit_id> 我无法推送到 public 回购。

我也试过git pull origin master --rebase,但这没有影响。

我仍然看到他添加的文件和目录,而我的仍然被删除。

如何解决此问题以完全恢复并向上游推送?

为了将您的本地副本完全重置为服务器上的内容,您需要首先获取最近的提交:

git fetch

然后将您的分支硬重置到远程分支的顶部。假设有问题的分支名为 master,您应该首先检查它,然后硬重置为 origin/master:

git checkout master
git reset --hard origin/master

另一方面,如果您想将 origin 的 master 分支设置为您本地的任何分支(不推荐),您可以强制推送:

git push --force