关于git:如何删除所有本地提交并转到分支主服务器上的最后一次提交(在远程存储库上)?

How can I remove all local commits and go the the last commit on the branch master (on remote repository)?

本问题已经有最佳答案,请猛点这里访问。

我在存储库中做了一些更改,并(在本地)注册了一个提交。然后我执行了这个:

1
$ git pull origin master

我的本地提交与已提取的提交合并。现在我后悔了。我想获取远程分支主服务器上的最后一个版本,并获得本地提交(合并后的)功能。

我可以通过以下命令更改工作目录:

1
2
// the last commit on the remove branch master
$ git checkout 84acc42 .

但是如果我对它做了一些更改并推送它,我想以前的更改仍然存在,并且也将作为提交推送。因为提交是存在的。

注意到$ git reset --hard没有删除任何内容。我执行了它,仍然看到了我不想要的改变。

知道如何获取远程存储库(分支主机)上的最新版本并删除其他所有内容吗?我可以通过删除本地工作目录并从存储库中再次克隆它来做到这一点。但我想知道还有没有别的办法。


获取源站/主服务器。

1
git fetch --all

准备所有更改。这样,就不会留下未跟踪的文件。

1
git add .

然后运行reset命令,

1
git reset origin/master --hard

这将丢弃分支中所做的所有更改,这将是源站/主服务器的精确副本。