reflog vs GITK http://siteroller.net/archive/images/Forums/headless%20GIT.png
顶部图像是输出:git reflog.
底部是GIT GUI(msysgit)中的GITK在查看所有分支历史时向我显示的内容.
最后几次提交没有在GIT GUI上显示.
第一个问题很重要 - 我想开始了解GIT的想法.在这一点上,它比逻辑更具神谕性.
Von*_*onC 11
为什么要将这些提交更新为它们所在的分支?
就是这样:你不在任何一个分支上,但目前在一个独立的头上工作:
从版本1.5.0开始,上面的命令将您
HEAD
从当前分支中分离出来,并直接指向由标记命名的提交.
如果你这样做,你可能会看到它 gitk --all
修复它的一种方法(如果你已经提交了所有东西)
$ git log -1
# note the SHA-1 of latest commit
$ git checkout master
# reset your branch head to your previously detached commit
$ git reset --hard <commit-id>
Run Code Online (Sandbox Code Playgroud)
另一种方法是将您的工作合并到恰好位于标签处的当前主HEAD:
$ git checkout -m 0.42
Run Code Online (Sandbox Code Playgroud)
但这会破坏你在一个独立的HEAD上做出的承诺的历史.
当我检查标签0.42时,我收集了这个.为什么和主人不一样?(我在最新状态下标记了主人)
不,它与主人不一样.正如Jefromi在评论中指出的那样,分支可以移动(或重命名,删除,或......)
master
指的是与'0.42'标签相同的提交,但情况并非总是如此.
通过签出标签,您不会签出分支,因此"分离的HEAD"状态.
注意:正如本SO答案中所提到的,@{1}
您看到的符号是$(git symbolic-ref HEAD)@{1}
,即它使用reflog用于当前(此处为分离的)分支,而不是HEAD reflog.
归档时间: |
|
查看次数: |
5130 次 |
最近记录: |