git(四)-分支进阶与版本回退
2017-07-30 12:46
218 查看
当前只有一个分支:
刚刚创建了一个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的日志:
很明显出现了一次提交,这样就保留了分支不被删除。
版本的回退:
当前版本库有四次提交;
命令:
$ 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
“`
刚刚创建了一个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的日志:
很明显出现了一次提交,这样就保留了分支不被删除。
版本的回退:
当前版本库有四次提交;
命令:
$ git reset --hard HEAD^ HEAD is now at 25db944 third commit $ git reset --hard HEAD^^ HEAD is now at adeef6e fisrt commit in test.txt $ git reset --hard 8214 HEAD is now at 821425d fourth commit $ git reset --hard HEAD~2 HEAD is now at 1806ac5 second commit `` 另外我们在回退的时候,在想回去的话,之前的版本号我们没法通过git log命令找到,因为git log记录的是提交记录。 但是我们可以使用git reflog命令得到版本号。git reflog记录的是工作日志。
$ 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
“`
相关文章推荐
- Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
- Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
- Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
- git分支与版本管理、版本回退、冲突解决记录
- git使用总结。分支管理,版本跳转回退
- git回退远程分支的版本
- Git的版本回退----“后悔药”以及删除分支
- idea中git远程版本回退
- 【版本控制管理】 深入 001 A successful Git branching model GIT 项目分支策略和释放管理
- 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
- GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
- git学习之旅(四)——回退版本
- git版本回退
- Git版本回退
- Git进阶命令(二)(git分支操作)
- Git 教程----3.0时光机穿梭 3.1版本回退 3.2工作区和暂存区 3.3管理修改 3.4撤销修改 3.5删除文件
- Git版本回退
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
- git版本回退的一个问题
- Git 版本回退/工作区和暂存区