在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配置-全局拉。Ff true在项目目录终端执行此命令。

这是一个理想的解决方案,通过桌面,但同时。对于不熟悉CLI (Command Line Interface)的用户,可以参考本手册。

从GitHub桌面,您可以按Ctrl + '(也可从 “存储库”主菜单为“在[您设置的终端]中打开”)。这 应该打开一个CLI。 从SourceTree -> Actions ->打开终端。这个会打开 终端与您的项目目录。

在终端输入: Git配置-全局拉。Ff为真(或错误提示中指定的任何其他选项)。

现在,当你试图拉它将使用该配置,并允许你继续。

我建议拉。Ff为真,因为它试图在应用本地提交之前快进您的分支,使其与远程更新,如果没有,它将执行从远程到本地分支的合并。点击这里阅读文档。

通常情况下,当您拖动一个分支、添加提交和推送时。这是在顺序假设您的本地是最新的远程。当无法快速转发时,通过合并,您将看到一个合并提交通知您它是如何处理的。(其他的选择是rebase或总是合并,许多新用户发现rebase不太直观,但实际上完成了同样的事情)

我添加了——global标志,这样你的选择将适用于你所有的回购,你不会再看到这个错误消息。如果您希望每个存储库都有不同的行为,可以忽略这个选项。

其他回答

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

这意味着您的本地主服务器和远程主服务器已经出现了分歧,这意味着它们都有不能简单地快进的贡献。 为了保持你的本地提交,你可以遵循以下步骤:

1. git switch -C feature_branch (from master, create local branch with your local commits)
2. git switch master
3. git reset --hard origin/master (lose all local changes, and become same as origin/master)
4. git switch feature_branch
5. git merge master (add remote changes to your local)
6. git push
7. Make a pull request for master.

这对我来说很管用:

git rebase /my_remote_branch_name

这对我很有用。

git reset --hard origin/<remote_branch_name>

让我们举个例子,你从开发分支创建了一个分支A,在从开发分支拉到分支A的过程中,出现了这个发散的问题。你不能把更新代码从开发到你的A分支。因此,请按照以下步骤解决此问题

Git签出开发分支(这将切换到开发分支) Git拉(它将拉所有的更改来开发) git checkout A-feature-branch(这将切换到你的feature branch) Git合并开发分支(它将合并所有更改到您的功能分支)

现在,您已经将代码从develop更新到本地分支。 享受你的编码:)