【发布时间】:2016-07-03 02:30:01
【问题描述】:
我从github克隆了一个repo,新建了一个分支,push到github,然后在本地删除了repo,最后又克隆了一次。现在我想将我的分支恢复到我在本地删除 repo 之前的状态,同时我想了解更多关于我的情况发生了什么以及它如何应用于@987654322 的概念@、分离的头部状态、遥控器和refs/heads。
我知道感兴趣的两个分支(mbigras 和 mcb-fix-type)仍然存在,但它们已被重命名:
atom-pane-manager git:master ❯ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/mbigras
remotes/origin/mcb-fix-typo
所以最初我以为我可以将 remotes/origin/mbigras 分支重命名为 mbigras 并完成,但我收到以下错误:
atom-pane-manager git:master ❯ git branch -a | grep mbigras | pbcopy
atom-pane-manager git:master ❯ git branch -m remotes/origin/mbigras mbigras
error: refname refs/heads/remotes/origin/mbigras not found
fatal: Branch rename failed
有几件事我很好奇:
- 为什么我不能重命名分支?
- 为什么错误消息中的分支名称中包含
refs/heads/?
我也在看树枝:
-
remotes/origin/HEAD和remotes/origin/master分支是什么意思?
我在.git 中四处寻找,试图弄清情况的正面或反面???? ???
atom-pane-manager git:master ❯ tree .git/refs
.git/refs
├── heads
│ └── master
├── remotes
│ └── origin
│ └── HEAD
└── tags
4 directories, 2 files
我希望至少在remotes 中找到remotes/origin/mbigras 和remotes/origin/mcb-fix-typo,但他们没有,这也令人困惑。
我还阅读了another post,其中谈到了“分离的头部状态”,我不确定这是否适用于我的情况,但该帖子确实涵盖了git rev-parse 命令,这可能有助于阐明一些情况:
atom-pane-manager git:master ❯ git rev-parse master
73b3c240ff9b35d760d8e4302308d3c0e725fc76
atom-pane-manager git:master ❯ git rev-parse HEAD
73b3c240ff9b35d760d8e4302308d3c0e725fc76
atom-pane-manager git:master ❯ git rev-parse remotes/origin/HEAD
73b3c240ff9b35d760d8e4302308d3c0e725fc76
atom-pane-manager git:master ❯ git rev-parse remotes/origin/master
73b3c240ff9b35d760d8e4302308d3c0e725fc76
atom-pane-manager git:master ❯ git rev-parse remotes/origin/mbigras
9a25755b0175ba2a3548b439ffdb12b8010e74a6
atom-pane-manager git:master ❯ git rev-parse remotes/origin/mcb-fix-typo
6d235be40c7223fda7a8a6dbdf8b2fd7336e3d00
从这些结果看来,HEAD、master、remotes/origin/HEAD 和 remotes/origin/master 都指向同一个地方,这是有道理的,因为它们指向最后一次提交:
atom-pane-manager git:master ❯ git log --pretty=oneline -n 1 | pbcopy
# => 73b3c240ff9b35d760d8e4302308d3c0e725fc76 Prepare 1.0.1 release
而且这两个神秘分支确实存在……某处。
所以我对到底发生了什么感到困惑,特别是上面提到的三个问题。我特别喜欢一个包含正在发生的事情的视觉表示的答案。谢谢??????
【问题讨论】: