iOS git checkout之一 HEAD基本和detached 状态

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

1.HEAD基础

git checkout 实际上是修改HEAD文件的内容,让其指向不同的branch。

HEAD文件指向的branch就是当前branch.

一般来讲,HEAD的内容是指向staging(暂存区)的master文件的。

[plain]view plaincopyprint?

ref: refs/heads/master

当然也可指向其他索引文件,不管怎么样,这个索引文件的内容又由git reset控制。

通过git branch命令看到的结果和HEAD文件内容一致。

[plain]view plaincopyprint?

$ git branch -v

* master 1aea8d9 [ahead 1] add test file x

2.最简单用法

git checkout最简单的用法,显示工作区,暂存区和HEAD的差异:

[plain]view plaincopyprint?

$ git checkout

M   x

Your branch is ahead of 'origin/master' by 1 commit.

意思是我本地仓库比远程仓库领先一个提交操作。git checkout HEAD 功能相同。

如果用-a 参数,可以看到很多branch,包括远程的branch,比如:

[plain]view plaincopyprint?

git branch -a

* master

remotes/origin/HEAD -> origin/master

remotes/origin/develop

remotes/origin/issue_193

remotes/origin/issue_210

remotes/origin/master

3.detached HEAD

如果让HEAD文件指向一个commit id,那就变成了detached HEAD。git checkout 可以达到这个效果,用下面的命令:

[plain]view plaincopyprint?

git checkout 1aea8d9^

laea8d9是最近的一次commit id,^指的是之前一次,因此上面的操作结果是让HEAD文件包含了倒数第二次提交的id.

下面演示如何进入datached HEAD状态,并恢复回来。

[plain]view plaincopyprint?

$ git branch -v

* master 89f8dae [ahead 2] update x

$ git checkout 89f8dae^

Note: checking out '89f8dae^'.

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.

If you want to create a new branch to retain commits you create, you may

do so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

HEAD is now at 1aea8d9... add test file x

好,现在恢复回来。

[plain]view plaincopyprint?

$ git checkout master

Previous HEAD position was 1aea8d9... add test file x

Switched to branch 'master'

Your branch is ahead of 'origin/master' by 2 commits.

我并不清楚detached HEAD有何实际用处,反正就是一个让HEAD随便指向某个commit id,而不在乎是哪个branch的功能。

http://blog.csdn.net/csfreebird/article/details/7583363

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • date: 2017-02-21 10:48:05 PyMySQL 是在 Python3.x 版本中用于连接 My...
    朴有天虹阅读 1,140评论 0 2
  • 一直在爸爸妈妈保护下,孩子慢慢地长大。经过幼稚园的依赖,小学的顽皮,中学的叛逆,高中的紧张... ... 成年的我...
    懿舒阅读 342评论 0 1
  • 陈研以为,这辈子,她再也见不到顾佳楠了。 国庆前最后一个工作日,陈研向公司请了假,她想避开出游...
    沫日阅读 461评论 2 4
  • 秋日的早晨 九点 顶着尸体般厚重的灰色云层 我走在冷冽的马路上 一只脏而病态的黑色流浪狗 一路跟随 它时而跑到前方...
    巳意阅读 383评论 0 1