git(四)-分支进阶与版本回退
当前只有一个分支:
刚刚创建了一个dev分支:
dev分支进行了修改并且提交,形成新的节点:
将分支进行合并:
这种merge是一种平fast forward的快进的方式,就是将master的指针指向dev的提交节点位置,不会产生新的提交。
将dev分支删除之后:
分支 合并冲突,在第三个节点创建feature1分支,然后在feature1进行了一次提交,然后在master进行了一次提交,最后合并:
fast-forward:
• 如果可能,合并分⽀支时Git会使⽤用fast-forward模式
• 在这种模式下,删除分⽀支时会丢掉分⽀支信息
• 合并时加上 - - no-ff参数会禁⽤用fast-forward,这样会多出⼀一
个commit id
• git merge - -no-ff dev
• 查看log
• git log - -graph
实际操作验证非快进提交:
切换到master:
然后执行:git merge –no-ff dev
此时出现提交界面:
最后我们merge完毕之后看master的日志:
很明显出现了一次提交,这样就保留了分支不被删除。
版本的回退:
当前版本库有四次提交;
命令:
1 | $ git reset --hard HEAD^ |
$ git reflog
1806ac5 (HEAD -> master) HEAD@{0}: reset: moving to HEAD~2
821425d HEAD@{1}: reset: moving to 8214
adeef6e HEAD@{2}: reset: moving to HEAD^^
25db944 HEAD@{3}: reset: moving to HEAD^
821425d HEAD@{4}: commit: fourth commit
25db944 HEAD@{5}: commit: third commit
1806ac5 (HEAD -> master) HEAD@{6}: commit: second commit
adeef6e HEAD@{7}: commit (initial): fisrt commit in test.txt