如果我仅使用分支名称签出分支,HEAD则更新为指向该分支.
$ git checkout branch
Switched to branch 'branch'
Run Code Online (Sandbox Code Playgroud)
如果我使用refs/heads/branch或签出分支heads/branch,则HEAD变为分离.
$ git checkout refs/heads/branch
Note: checking out 'refs/heads/branch'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
$ git checkout "refs/heads/branch"
Same result
$ git checkout heads/branch
Same result
Run Code Online (Sandbox Code Playgroud)
为什么?如果它的版本依赖,我在Ubuntu 12.04.3上有git 1.7.9.5.
如果在重新执行基准操作期间偶然跳过了有用的提交,是否有希望Git保留可以重新应用的引用?
这是一个具有许多二进制文件的非交互基础,使用,我花了很长时间来触发愉快的心情git rebase --skip,因此根本没有错误消息,只是糟糕的态度。
这似乎是硬盘崩溃的恢复方案,但与其追逐幻像inode,还不如采用一种方法来过滤掉内部丢失的树对象.git/objects并使它们恢复活动。