在git拉origin master之后,我得到了以下消息:

warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase
  git config pull.ff only       # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 51.49 KiB | 850.00 KiB/s, done.

拉动似乎成功了,但我不确定。

我该怎么补救呢?


当前回答

这对我很有用。

git reset --hard origin/<remote_branch_name>

其他回答

此问题在2.34.1中修复,更新Git版本。

确保您当前所在的分支存在于远程存储库中。如果你正在使用Atlassian (Bitbucket和Jira),可能是在一个pull请求后,你的分支被删除了,你忘记签出到其他分支(即master/develop)。

这对我很有用

git config --global pull.ff true

我不知道这是否与您的问题有关,但请注意Git v2.34.0版本有一个问题。git pull命令没有预期的行为。

发布说明中关于Git修复和2021-11-24新版本的消息:

当对方在我们身后的时候,任何策略都应该是“git pull” 成功,因为它是一个没有操作,但没有”。

Git v2.34.1版本说明

上面已经提到了一些很好的答案,但如果你觉得困惑,你可以试试这个(警告:如果你有本地更改,下面的命令将擦除更改):

git reset --hard origin/<remote_branch_name>

示例:如果分支名称为master

git reset --hard origin/master

该命令将丢弃任何本地分支更改,并使您的本地分支与远程分支完全相同。换句话说,它使您的本地分支成为远程分支的副本。