分支存在,但无法在参考/标题中看到

时间:2018-11-05 18:34:43

标签: git bitbucket-server

在BitBucket Server计算机上的裸仓库(无工作文件夹)中,我有两个发行分支:

select * from orders

但是,如果我查看# git branch --list | grep release warning: ignoring broken ref refs/heads/integration/Team release/2018r1 release/2018r2 ,这些分支都看不到:

refs/heads

# ls refs/heads/release testing 分支是前一段时间已删除的分支。

testingrelease/2018r1如何存在(并被release/2018r2看到)却不出现在git branch --list中?

为什么旧的refs/heads分支不再存在时会显示在release/testing中?

1 个答案:

答案 0 :(得分:2)

引用名称可以打包(存储在普通文件.git/packed-refs中)或 unpacked (每个文件存储一个)。同时存在未打包和已打包的引用将其当前值存储在未打包的副本中,即打包的副本不会自动删除。

在这种情况下,无疑会打包两个“不可见”引用。我不清楚refs/heads/release/testing到底是怎么回事。

Git的未来版本可能会完全停止将参考名称存储在纯文本文件中,因为文件名称在Windows和MacOS文件系统上存在大小写折叠的问题。使用git for-each-refgit update-ref(及类似方法)读取和写入参考值,以便为将来使用实际键值数据库的Git准备。