即使没有变化也不可能快进

Kar*_*lek 4 git

我结束了一个奇怪的git状态.我想从服务器拉,只有快进.

然而,即使没有变化,git仍然告诉我"不可能快进".

$ git pull -v --ff-only
From github.com:username/repo
 = [up to date]      branch    -> origin/branch
 = [up to date]      branch2    -> origin/branch2
 = [up to date]      branch3    -> origin/branch3
fatal: Not possible to fast-forward, aborting.
Run Code Online (Sandbox Code Playgroud)

我如何告诉git告诉我有关快速前进这种"不可能"的更多信息?我更加冗长...

j2e*_*nue 23

您在“develop”分支上的提交与“origin”分支上的提交不匹配。做这个:

git pull origin develop --rebase
Run Code Online (Sandbox Code Playgroud)


Jan*_*ger 5

当(a)您之前在该分支上提交了某些内容,或者(b)远程服务器上的历史记录以非标准方式更改时(这通常不会发生,但存储库所有者有时不遵守规则) .

对于以下我假设你正在foo上游分支origin/foo.

  • git log ..origin/foo看什么都提交在远程端新.
  • git log origin/foo..看什么承诺存在于你身边没有在远程端存在(这会告诉你的,阻止快进任何承诺).
  • 如果您断定这些提交不需要或已经以不同的形式出现在远程端,则git reset --hard origin/foo强制您的分支与远程分支相等(这将破坏所有未提交的更改,并且任何未包含的提交remote/foo将无法访问).