代码之家  ›  专栏  ›  技术社区  ›  flow2k

git内部:为什么`.git/refs/remotes/origin/`没有所有分支

git
  •  0
  • flow2k  · 技术社区  · 7 年前

    ls .git/refs/remotes/origin/ ,我只看到遥控器的一个子集 origin 树枝。为什么会这样? git branch -a 把所有的树枝都拿好了,我就把它们拿好了。

    1 回复  |  直到 7 年前
        1
  •  4
  •   torek    7 年前

    Git将引用存储在两种形式中,这两种形式不是专门命名的,而是与打包对象类似,第二种引用形式是一个名为 .git/packed-refs 我们可以打电话 释放 拥挤的 .

    中的单个文件 .git/refs/ 实际上, 释放 参考文件,包装好的 .git/压缩参考 . 与对象不同,如果引用存在松散版本,则它可能与打包版本不同:松散版本被认为是正确的值。这意味着在更改松散引用的值时不需要删除打包的引用。

    您不应该知道或关心所有这些:要阅读参考资料的价值,请使用 git rev-parse (对于非符号引用)或 git symbolic-ref (用于符号参考,如 HEAD )要更新它们,请使用 git update-ref Git符号参考 . 这些命令负责所需的锁定。