与
git log --graph --all --oneline
我有:
* G (HEAD -> main, origin/main)
...
* F
* E
* D
* C
* B
| * Z
|/
* A
但是如果省略
--all
标志,则图表为:
* G (HEAD -> main, origin/main)
...
* F
* E
我的问题是:
A
到达
B
、C
、D
、main
。为什么git log
不显示它们?Z
。为什么git log --all
显示它?那是因为实际上有两个根提交,而不是一个:
E
和 A
。 --oneline
标志混淆了图表,使得 A
、B
、C
和 D
看起来可以从 main
访问,但其实不然。省略该标志表明有两个根。
但是附加到
A
、B
、C
、D
或 Z
的参考文献在哪里? git for-each-ref --format="%(objectname:short) %(refname)"
会回答:
G refs/heads/main
D refs/original/refs/heads/main
Z refs/original/refs/tags/Cấutrúc1
C refs/original/refs/tags/Cấutrúc1.1
G refs/remotes/origin/main
前往
.git/packed-refs
并删除refs/original/refs/
即可解决问题。