Git分支和指针
2017-03-08 23:19
232 查看
Git中的分支本质上是个指向commit对象的指针。
在当前commit点创建一个新的分支test
创建了一个新的可变指针指向f30ab commit
Git 是如何知道你当前是在哪个分支上工作的
(1)Git保存着一个名为HEAD的特别指针
(2)HEAD可以指向你正在工作中的本地分支的指针
(3)HEAD也可以指向一个单独的commit点(分离头指针)
(4)git中用来操作HEAD指针的命令是
(5)查看当前所在的分支
(6)切换分支
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状态。通常用于获取指定版本的代码文件。
在当前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状态。通常用于获取指定版本的代码文件。
相关文章推荐
- [廖雪峰] Git 分支管理(1):创建与合并分支(HEAD、master、dev、指针)
- git rebase --abort会涉及哪些文件,这个命令会涉及HEAD指针的移动吗?在何种情况下,HEAD不会指向某个具体的分支?
- Git分支指针移动到不同的提交
- Git之(四)分支管理
- 对 Git 分支 master 和 origin/master 的一些认识
- git代码管理—创建分支、合并分支、回滚代码
- git命令合并分支代码
- git--- 删除不存在对应远程分支的本地分支
- 项目开发中git分支规范
- Git 分支管理策略
- git恢复删除的分支及内容的方法
- 记录,git和远端分支的删除同步
- Git 获取远程分支
- Git概念:什么是分支
- git中创建新的空白分支
- Git 分支管理是一门艺术
- git的版本管理使用(三)-拉取分支代码
- Git学习笔记(四)——分支管理和远程操作
- git 分支管理(五)
- Git分支学习简记