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

Mar*_* AJ 5 git github

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

$ git pull origin master
Run Code Online (Sandbox Code Playgroud)

我的本地提交与被拉的合并。现在我很后悔。我想获取远程分支主服务器上的最新版本,并获取本地提交(已合并)的信息。

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

// the last commit on the remove branch master
$ git checkout 84acc42 .
Run Code Online (Sandbox Code Playgroud)

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

注意,$ git reset --hard这不会删除任何内容。我执行了该操作,但仍然看到了不需要的更改。

知道如何获取远程存储库(分支母版)上的最新版本并删除其他所有内容吗?我可以通过删除本地工作目录并从存储库中再次克隆来实现。但是我想知道是否还有另一种方法。

Abd*_*hin 5

获取原点/主。

git fetch --all
Run Code Online (Sandbox Code Playgroud)

进行所有更改。因此,不会留下任何未跟踪的文件。

git add .
Run Code Online (Sandbox Code Playgroud)

然后,运行reset命令,

git reset origin/master --hard
Run Code Online (Sandbox Code Playgroud)

这将丢弃在分支中所做的所有更改,将是 origin/master 的精确副本。