【问题标题】:Where are my local remote branches?我的本地远程分支机构在哪里?
【发布时间】:2015-02-17 20:59:28
【问题描述】:

我刚刚克隆了一个已经有一堆远程分支的 git repo。我在 .git 文件夹中四处寻找,但找不到它们,当我执行 git show-ref 时,我得到:

cf8e5e98c27ee83a1ff2122f2c2a214e8e06383d refs/heads/master
cf8e5e98c27ee83a1ff2122f2c2a214e8e06383d refs/remotes/origin/HEAD
76541f13b20bb25056788f092f58547d4657bed8 refs/remotes/origin/example
cf8e5e98c27ee83a1ff2122f2c2a214e8e06383d refs/remotes/origin/master
cf8e5e98c27ee83a1ff2122f2c2a214e8e06383d refs/remotes/origin/smpl-remote
e34b3b7e54174c5b862ae16d29a3079c060c160e refs/remotes/origin/test

但文件夹:.git\refs\remotes\origin 只包含HEAD 文件

如果在 eclipse 中打开 repo,我可以看到它们:

我在这里错过了什么?

我刚刚尝试删除互联网连接(wifi 和有线),但我仍然可以列出远程分支,.git 文件夹中的哪些信息是??

【问题讨论】:

  • 你为什么要这么辛苦? git branch -r 告诉你什么?
  • 这不是重点。是否需要在线访问才能列出远程分支?
  • 你不需要访问它们来列出远程分支,你需要访问以使用git fetch更新它们。
  • 检查.git\packed-refs
  • @u123 为什么你关心 Git 存储远程跟踪分支的位置呢?作为用户,这与您无关...

标签: git


【解决方案1】:

Andrew C answered in a comment,不过我会补充一点。

“丢失”的分支被“打包”。这样可以节省空间(有时还可以节省时间,尽管主要是清洗)。

事实上,所有分支都在不同的时间打包(当git pack-refs 运行时,通常代表git gc)。这是您应该使用各种前端和后端命令(git branchgit for-each-refgit update-refgit symbolic-ref)来处理分支的几个原因之一,而不仅仅是直接查看.git/refs/ .

有时将.git/packed-refs 添加到您的预览中会很方便,但请记住,这部分是实现细节,可能会发生变化。

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 2010-09-15
    • 2012-10-23
    • 2012-09-18
    • 2011-09-07
    • 2016-02-06
    • 2017-04-19
    • 2018-09-29
    相关资源
    最近更新 更多