git revert 和 git reset
2015-12-15 22:47
232 查看
git revert
撤销某次操作,而且会保留之前的commit,并且会把此次撤销作为最新的提交。
eg:
git revert HEAD 撤销前一次 commit
git revert HEAD^ 撤销前前一次 commit
git revert commit (commit 表示提交的版本编号,比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff) 撤销指定的版本,该次撤销也会作为一次提交进行保存
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。
git reset
如果想把已经add到stage区中的文件撤回时,则可以使用该命令。同时在你git add 完成后,也会有相关的提示:
git reset [--hard|soft|mixed|merge|keep] [<commit>或HEAD]:将当前分支重置(reset)
到指定的<commit> 或 HEAD (如果不显示指定commit,默认是HEAD,即最新的一次提交)。并且根据[mode]有可能更新stage和 working directory。mode的取值可以是hard、soft、mixed、merged、keep。下面来详细说明每种模式的意义和效果。
A) --hard :重置stage区和working directory。从<commit>以来,在working directory中的任何改变都被丢弃,并把HEAD指向<commit>。
eq:git reset --hard cc53e545224340ea7135040933258fb4b8ad4431
HEAD 指向版本cc53e545224340ea7135040933258fb4b8ad4431。
git reset --hard HEAD^ 退回到上一个版本 (working directory的修改全部丢弃)
HEAD 表示当前版本
HEAD^ 表示上一个版本
B) --soft :stage和working directory中的内容不作任何改变,仅仅把HEAD指向<commit>。这个模式的效果是,执行完毕后,自从<commit>以来的所有改变都会重新处于暂存区(stage),准备提交的状态,此时使用git commit 就会提交它。
C) --mixed:默认模式即当不显示告知git reset模式时,会使用mixed模式。这个模式的效果是,working directory中文件的修改都会被保留,文件的状态处于执行git add 之前的状态(Untracked files)。
总结:
git revert 是撤销某次操作,此次操作之前的commit都会被保留
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区,git
log 没有之前提交的记录
撤销某次操作,而且会保留之前的commit,并且会把此次撤销作为最新的提交。
eg:
git revert HEAD 撤销前一次 commit
git revert HEAD^ 撤销前前一次 commit
git revert commit (commit 表示提交的版本编号,比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff) 撤销指定的版本,该次撤销也会作为一次提交进行保存
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。
git reset
如果想把已经add到stage区中的文件撤回时,则可以使用该命令。同时在你git add 完成后,也会有相关的提示:
git reset [--hard|soft|mixed|merge|keep] [<commit>或HEAD]:将当前分支重置(reset)
到指定的<commit> 或 HEAD (如果不显示指定commit,默认是HEAD,即最新的一次提交)。并且根据[mode]有可能更新stage和 working directory。mode的取值可以是hard、soft、mixed、merged、keep。下面来详细说明每种模式的意义和效果。
A) --hard :重置stage区和working directory。从<commit>以来,在working directory中的任何改变都被丢弃,并把HEAD指向<commit>。
eq:git reset --hard cc53e545224340ea7135040933258fb4b8ad4431
HEAD 指向版本cc53e545224340ea7135040933258fb4b8ad4431。
git reset --hard HEAD^ 退回到上一个版本 (working directory的修改全部丢弃)
HEAD 表示当前版本
HEAD^ 表示上一个版本
B) --soft :stage和working directory中的内容不作任何改变,仅仅把HEAD指向<commit>。这个模式的效果是,执行完毕后,自从<commit>以来的所有改变都会重新处于暂存区(stage),准备提交的状态,此时使用git commit 就会提交它。
C) --mixed:默认模式即当不显示告知git reset模式时,会使用mixed模式。这个模式的效果是,working directory中文件的修改都会被保留,文件的状态处于执行git add 之前的状态(Untracked files)。
总结:
git revert 是撤销某次操作,此次操作之前的commit都会被保留
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区,git
log 没有之前提交的记录
相关文章推荐
- IO流--粘贴复制
- HDU 1159 最长公共子串
- C++拷贝构造函数和移动构造函数
- 用IDEA启动非maven管理的web项目
- Android 源码解析: 图片加载库Picasso 3 核心类
- 正则表达式
- Ajax技术POST交互实现二级联动菜单
- 彻底弄懂最短路径问题
- 图片放大缩小
- 安装10gR2的硬件要求
- 山东大学使用QLSC_STU避免掉线的方法java版实现
- Tempter of the Bone
- Head First HTML&CSS 笔记(2)-定位与布局
- Unity3D-向量运算-加减点乘叉乘
- Struts2 文件上传
- Spring.net-业务层仓储
- Struts2 文件上传
- redis
- ContextLoaderListener与DispatcherServlet所加载的区别
- MongoDB学习第二弹