git 进阶
一、git 工作区 到 本地仓库
1. 什么是HEAD?!什么是master?
1. 提交对象:
1. Git 保存的并不是文件的变化或者差异,而是一系列的不同时刻的文件快照
2. 提交操作时Git会保存一个提交对象,该对象中包含一个指向暂存内容快照的指针、作者姓名、邮箱、
父对象指针以及提交输入信息
3. 首次提交的对象没有父对象
4. 普通的提交有一个父对象
5. 多个分支合并的有多个父对象
2. 什么是HEAD
1. HEAD是一个特殊指针,该指针指向当前所在分支
2. HEAD是唯一的
2. master分支
1. Git 的分支本质上仅仅是指向提交对象的可变指针。
2. Git默认分支名:master,它会在每一次的提交中自动前移。
3. Git的分支 master并不是一个特殊分支,它和其他的分支完全没有区别,
之所以每个分支都是有master是git init命令默认创建,而大部分人又懒得去更改
3. 分支操作
1. 创建分支
git branch 分支名
(创建出来分支不会改变当前所载位置)
2. 切换分支
git checkout 分支名
(将HEAD指向切换的分支)
3. 两个命简写
git checkout -b 分支名
(创建分支并且切换分支)
3. 合并分支
1. 将目标分支的内容合并到当前分支(HEAD指向主分支)
git merge 目标分支
2. 快速前移(不理想)
当master和branch没有形成分叉,依旧是处于一条路径线,当HEAD落后于所要合并的分支,
将会形成快速前移
3. --no-ff 禁止快速前移(可以commit记录描述为合并操作)
4. 分支冲突
1. 如何判断是否会引起冲突:
master 和 branch1 处于同一条commit路径上(直接级祖先关系)
master 和 branch1 直接进行合并,不会引起冲突
① 分析 master 和 bran