在进行ls .git/refs/remotes/origin/
时,我仅看到远程origin
分支的子集。这是为什么? git branch -a
具有所有分支,因此我正确地获取了它们。
答案 0 :(得分:4)
Git以两种形式存储引用,它没有具体命名,但类似于打包对象,并且第二种引用形式是名为.git/packed-refs
的文件,我们可以称 loose 和包装。
.git/refs/
中的各个文件实际上是 loose 引用,而压缩文件则位于.git/packed-refs
中。与对象不同,如果存在引用的松散版本,则它可能与打包版本不同:松散引用被认为是正确的值。这意味着在更改松散引用的值时无需删除打包的引用。
您不应该了解或关心所有这些:要读取引用的值,请使用git rev-parse
(对于非符号引用)或git symbolic-ref
(对于诸如{{ 1}})。要更新它们,请使用HEAD
或git update-ref
。这些命令负责必需的锁定。