在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 config --global pull.ff only

该选项将被添加到全局的.gitconfig中。

[pull]
    ff = only

如果快进后期失败,尝试git pull -no-ff。

其他回答

Git拉源主-rebase

为我工作!

运行这个:

git config pull.ff only

祝贺自己能继续工作。

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

git reset --hard origin/<remote_branch_name>

示例:如果分支名称为master

git reset --hard origin/master

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

这是Git 2.27中添加的一个新警告:

 * "git pull" issues a warning message until the pull.rebase
   configuration variable is explicitly given, which some existing
   users may find annoying---those who prefer not to rebase need to
   set the variable to false to squelch the warning.

要删除警告,如果你没有在命令行上指定行为(使用——ff,——no-ff,——ff-only,——rebase),将建议值之一设置为git拉取的首选默认行为。在所有情况下,如果可能的话,git都会尝试快进(什么是git快进?)这些设置控制在您的分支中发生更改但未在远程分支中显示时发生的情况。

  git config pull.rebase false  # merge (the default strategy)

这是现有的默认行为;设定为不发出警告,也不改变行为;Git会将远程分支合并到本地分支中。

  git config pull.rebase true   # rebase

在这里,git将尝试在远程分支的顶部重新基于您的更改。什么时候我应该使用git pull -rebase?关于你为什么想要那样做的更多细节。

  git config pull.ff only       # fast-forward only

如果快进合并是不可能的,git将拒绝继续。git pull -rebase和git pull -ff-only引号的区别:

拒绝合并并以非零状态退出,除非当前HEAD已经是最新的,或者合并可以作为快进解决

在我的例子中,当我只想获得我想要的分支的最新更新时,我正在从一个不同的分支进行拉取。我把树枝换回去,它就恢复正常了。