Git分支和指针

Git中的分支本质上是个指向commit对象的指针。

在当前commit点创建一个新的分支test

git branch test

创建了一个新的可变指针指向f30ab  commit

Git 是如何知道你当前是在哪个分支上工作的

(1)Git保存着一个名为HEAD的特别指针

(2)HEAD可以指向你正在工作中的本地分支的指针

(3)HEAD也可以指向一个单独的commit点(分离头指针)

(4)git中用来操作HEAD指针的命令是

git checkout

(5)查看当前所在的分支

git branch

(6)切换分支

git checkout  <分支名称>

 

git reset 用于移动HEAD指针指向的commit点(如HEAD指针指向了分支,分支也会移动),但git reset 不会切换分支(注意和checkout的区别)

reset 的几种,模式:

(1)--soft:缓存区和工作目录不受影响。reset后分支和HEAD指针移动到指定的commit,代码文件内容和reset之前一样,修改部分已加入到暂存区。通常用于重新提交。

(2)--mixed:(默认)工作目录不受影响。reset后分支和HEAD指针移动到指定位置,代码文件内容和reset之前一样,修改部分未加入到暂存区。(需要重新执行git add)

(3)--hard:工作目录,缓存区均受影响。reset后分支和HEAD指针移动到指定commit,代码文件内容回退到指定commit,工作空间为clean状态。通常用于获取指定版本的代码文件。

 

posted @ 2016-10-13 21:25  CrazyDiode  阅读(2776)  评论(0编辑  收藏  举报