为什么 git log 不显示可达祖先?

问题描述 投票:0回答:1

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
    显示它?
git git-log
1个回答
0
投票

那是因为实际上有两个根提交,而不是一个:

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/
即可解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.