我结束了一个奇怪的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.
我如何告诉git告诉我有关快速前进这种"不可能"的更多信息?我更加冗长...
当(a)您之前在该分支上提交了某些内容,或者(b)远程服务器上的历史记录以非标准方式更改时(这通常不会发生,但存储库所有者有时不遵守规则) .
对于以下我假设你正在foo
上游分支origin/foo
.
用git log ..origin/foo
看什么都提交在远程端新.
用git log origin/foo..
看什么承诺存在于你身边没有在远程端存在(这会告诉你的,阻止快进任何承诺).
如果您断定这些提交不需要或已经以不同的形式出现在远程端,则git reset --hard origin/foo
强制您的分支与远程分支相等(这将破坏所有未提交的更改,并且任何未包含的提交remote/foo
将无法访问).