git checkout之一 HEAD基本和detached 状态
http://blog.csdn.net/csfreebird/article/details/7583363
1.HEAD基础
git checkout 实际上是修改HEAD文件的内容,让其指向不同的branch。
HEAD文件指向的branch就是当前branch.
一般来讲,HEAD的内容是指向staging(暂存区)的master文件的。
[plain] view plaincopyprint?
通过git branch命令看到的结果和HEAD文件内容一致。
[plain] view plaincopyprint?
2.最简单用法
git checkout最简单的用法,显示工作区,暂存区和HEAD的差异:
[plain] view plaincopyprint?
如果用-a 参数,可以看到很多branch,包括远程的branch,比如:
[plain] view plaincopyprint?
3.detached HEAD
如果让HEAD文件指向一个commit id,那就变成了detached HEAD。git checkout 可以达到这个效果,用下面的命令:
[plain] view plaincopyprint?
下面演示如何进入datached HEAD状态,并恢复回来。
[plain] view plaincopyprint?
[plain] view plaincopyprint?
我并不清楚detached HEAD有何实际用处,反正就是一个让HEAD随便指向某个commit id,而不在乎是哪个branch的功能。
http://stackoverflow.com/questions/10228760/fix-a-git-detached-head
Detached head means you are no longer on a branch, you have checked out a single commit in the history (in this case the commit previous to HEAD, i.e. HEAD^).
You only need to checkout the branch you were on, e.g.
git checkout masterNext time you have changed a file and want to restore it to the state it is in the index, don't delete the file first, just do
git checkout -- path/to/fooThis will restore the file foo to the state it is in the index.
总结
以上是生活随笔为你收集整理的git checkout之一 HEAD基本和detached 状态的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Struts2拦截器实现异常处理机制
- 下一篇: Struts2整合SiteMesh