GitHub分支系列教程(3)
发布在GitHub Tips2014年5月14日view:3739
在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

今天讲解分支切换命令——git checkout。

上文书我们说到可以通过“git branch B”来创建一个新分支,不过创建之后我们默认还是处在原来的分支。这时我们可以运行“git checkout B”来把当前分支切换到B。checkout之后我们可以运行“git branch”来查看一下,如果B分支前面出现了“*”就表示切换成功了。

命令很简单,我们深入挖掘一下这条命令到底做了些什么事。

首先讲一下git的HEAD。

上文我们说到了“指向一个版本”的概念,大家还记得吗?简单说就是每个分支其实都相当于一个指针,指向某一个提交过的版本。当我们运行commit命令的时候就会创建一个新版本,并将指针移动到这个新版本上。

理解了这个概念,就很容易理解git的HEAD了。一个git库只有一个HEAD,它的作用就是“指向指针的指针”。有点拗口, 我们看图: enter image description here

这样就一目了然了吧,master是当前工作分支,这时HEAD就指向了master。

HEAD会指向当前工作分支。

下面我们具体看“git checkout B”做了什么事:

  • 更新git内部的index、文件以及工作树

  • 更新HEAD,将其指向B分支

这里大家可能有个疑问,如果之前的修改没有commit,那么切换分支时候这些修改是留在原分支还是跟着切换到新分支呢?

答案是后者:如果存在没有提交的修改,会随着切换分支切换到新分支。也就是说假如你进行了一些修改但是没有commit,那么切换分支之后,运行“git status”仍然可以看到这些修改,然后你运行commit的话,会提交到新分支


欢迎扫描二维码关注我的微信号“GitHub不完全装B指南”,获取最新文章。

谢谢~ enter image description here

评论
发表评论
暂无评论
WRITTEN BY
GitHub不完全装B指南
可能是全宇宙最低端的GitHub使用教程,1秒学会如何用别人的库装自己的逼!
TA的新浪微博
PUBLISHED IN
GitHub Tips

第一季文章中的Tips合集

我的收藏