git fetch的奇怪行为

Mil*_*tos 9 git commit rebase git-fetch git-checkout

GIT fetch我遇到了一个大问题......看看这个

$ git fetch
From server:project
   422b4cb..a04c062  master     -> origin/master

$ git show-ref
ba113be885e66a5306d1646cd3db0801170c04f8 refs/heads/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/master
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/test
a04c062261beeb4a951337ebb58745945cac3562 refs/remotes/origin/HEAD
ba113be885e66a5306d1646cd3db0801170c04f8 refs/remotes/origin/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

而另一个git fetch:

$ git fetch
From server:project
 + a04c062...422b4cb HEAD       -> origin/HEAD  (forced update)

$ git show-ref
ba113be885e66a5306d1646cd3db0801170c04f8 refs/heads/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/master
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/test
422b4cbac3db2784c8f6e94ffd99c7afcda9122d refs/remotes/origin/HEAD
ba113be885e66a5306d1646cd3db0801170c04f8 refs/remotes/origin/alpha-release
422b4cbac3db2784c8f6e94ffd99c7afcda9122d refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

而另一个......

$ git fetch
From server:project
   422b4cb..a04c062  master     -> origin/master

$ git show-ref
ba113be885e66a5306d1646cd3db0801170c04f8 refs/heads/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/master
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/test
a04c062261beeb4a951337ebb58745945cac3562 refs/remotes/origin/HEAD
ba113be885e66a5306d1646cd3db0801170c04f8 refs/remotes/origin/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

而另一个git fetch:

$ git fetch
From server:project
 + a04c062...422b4cb HEAD       -> origin/HEAD  (forced update)

$ git show-ref
ba113be885e66a5306d1646cd3db0801170c04f8 refs/heads/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/master
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/test
422b4cbac3db2784c8f6e94ffd99c7afcda9122d refs/remotes/origin/HEAD
ba113be885e66a5306d1646cd3db0801170c04f8 refs/remotes/origin/alpha-release
422b4cbac3db2784c8f6e94ffd99c7afcda9122d refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

refs/remotes/origin/HEADrefs/remotes/origin/master总是强迫更新422b4cb...

发生了什么?422b4cb......是一个旧的提交.

Mil*_*tos 12

哇...在与GIT的一场大战之后,我使用以下方法解决了这个问题:

git push origin :HEAD


Von*_*onC 4

我看到这种行为的唯一另一个例子是在这个线程中:

看起来你在远程端有本地分支“ HEAD”(不是特殊的引用HEAD),这把它弄乱了。

ls-remote'ing 存储库显示 ' refs/heads/HEAD',对吗(还有 HEAD,这是所需的特殊参考)?

也许提交是在引入422b4cb名为“ ”的分支时进行的?HEAD

注意(7 年后):使用Git 2.16(2018 年第一季度),您将无法创建名为 HEAD 的分支