Git: 您的分支和“ source/master”发生了分歧——如何丢弃本地提交?

我在 git 中有以下信息:

# Your branch and 'origin/master' have diverged,
# and have 3 and 8 different commits each, respectively.
#   (use "git pull" to merge the remote branch into yours)

I would like to throw away the 3 local commits, and pull the 8 remote commits at origin/master.

(合并将会非常困难,我宁愿在 master 更新之后再次进行3本地提交。)

我怎么能这么做?

148391 次浏览
git fetch origin
git reset --hard origin/master

尝试这样做,吹走你的本地承诺:

git reset --hard HEAD~4

为了保存旧的提交到临时分支上,以备不时之需:

git branch temp

Then switch to the new master

git fetch origin
git reset --hard origin/master

作为合并的替代方法,您可以使用以下命令将特性分支重新基于主分支:

git checkout feature
git rebase master

如果硬重置对你来说不管用,你也不想进行拉合并,你可以通过删除本地分支并重新下载原始分支来丢弃你不想要的本地变更:

git branch -D <local branch>
git checkout -b <branch name> origin/<branch name>

main为例:

git branch -D main
git checkout -b main origin/main

要删除最新的本地提交,请使用以下命令:

git reset HEAD^

这将使头恢复到提交之前的状态,并允许您从 master 返回 git pull。在从远程存储库中提取之前,请确保在其他地方(本地)保存所有更改。

为了能够在没有冲突的情况下使用 git stash,然后使用 git pull