个人备忘笔记
![](https://img.haomeiwen.com/i1430582/76a77516a254660a.png)
![](https://img.haomeiwen.com/i1430582/8d6afdcae1ac190c.png)
![](https://img.haomeiwen.com/i1430582/bef842f82046a059.png)
![](https://img.haomeiwen.com/i1430582/8675d24efcdb4344.png)
![](https://img.haomeiwen.com/i1430582/dcdf035fce8ebe32.png)
![](https://img.haomeiwen.com/i1430582/acba152262d0cab3.png)
![](https://img.haomeiwen.com/i1430582/92eb3c928f465c48.png)
![](https://img.haomeiwen.com/i1430582/54ec4968c305532a.png)
![](https://img.haomeiwen.com/i1430582/d1043b5a855bc129.png)
![](https://img.haomeiwen.com/i1430582/8bda02c17571acfd.png)
![](https://img.haomeiwen.com/i1430582/fe48c7bfbd4ff1bc.png)
![](https://img.haomeiwen.com/i1430582/d46b0fbb84cd494a.png)
![](https://img.haomeiwen.com/i1430582/869a023dc9604b60.png)
![](https://img.haomeiwen.com/i1430582/ec1c87e98426c1f9.png)
![](https://img.haomeiwen.com/i1430582/4e614ee5f3fab8f5.png)
![](https://img.haomeiwen.com/i1430582/adf44313a2980816.png)
A 合并到B分支。 到B分支下,执行merge A 命令。
![](https://img.haomeiwen.com/i1430582/1d8ddf9d1fb8b40d.png)
当前分支 experiment、变基操作的目标基底分支 master
$ git checkout experiment
$ git rebase master
最近共同祖先C2,
当前支指向目标基底 C3,
![](https://img.haomeiwen.com/i1430582/47624b3482050990.png)
Git 中的 HEAD 可以理解为指针,指向当前仓库所处的分支。一般在有 Git 管理的目录下打开 Git 终端都能在当前路径的尾巴上,看到所处的分支名。
HEAD一般指向 分支名称 的指针上,分支指针指向 哈希 链条, 分支指针和 HEAD 一般它指向当前工作目录所在分支的最新提交。
head指针游离(即不在master上,这种情况下会被提醒指针不在分支上,是比较危险的),则commit时,head迁移,master不会跟着移动。
![](https://img.haomeiwen.com/i1430582/5d2d9acb9a02cc4e.png)
![](https://img.haomeiwen.com/i1430582/33d97a6945ed85eb.png)
![](https://img.haomeiwen.com/i1430582/64e80b38a06e5826.png)
![](https://img.haomeiwen.com/i1430582/3a4315592e13d2ec.png)
所以reset操作带着 branch是不会导致指针游离的。只有git checkout commit id时,HEAD脱离branch时存在游离风险。
![](https://img.haomeiwen.com/i1430582/4a3dbd84988b69d7.png)
网友评论