分支和标记信息从git中的refs区域消失

时间:2011-06-26 20:07:54

标签: git github

在测试驱动git GUI应用程序(SmartGit,以防它有所不同)后,我注意到我的.git/refs/heads目录只包含“master”(应该列出其他三个分支),并且我的.git/refs/tags目录完全为空。这是我的本地副本,项目本身托管在GitHub上。当我在GitHub上浏览它时,(幸运的是)一切都还在那里。

恢复本地分支和标记信息的最佳方法是什么?我知道那些目录中的文件只包含它们指向的对象的SHA,但我是一个相当基层的git用户。

兰迪

3 个答案:

答案 0 :(得分:2)

您的.git / config文件似乎已丢失,因为它存储了有关本地分支的信息以及它们正在跟踪的分支。您需要再次签出这些分支:

git checkout --track origin/branch1
git checkout --track origin/branch2

这将重新创建分支并确保它们跟踪远程分支。要更新标记,您需要执行以下操作:

git fetch --tags

答案 1 :(得分:0)

git branch -a打印什么?裁判可能是由git打包的。

答案 2 :(得分:0)

我知道这个问题很老,但是我认为这可能是正确的答案https://stackoverflow.com/a/5504066/2272572

裁判在文件.git/packed-refs