git revert、git reset和git checkout区别精华版
2016-11-19 22:35
537 查看
1、git revert
id就可以回到某个版本 git reset --hard 3628164)
git checkout hotfix
git revert HEAD~2
(2)git revert 操作之后的commit都会被保留。
具体一个例子,假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
当执行git revert HEAD~1时, commit2被撤销了
git log可以看到:
commit1:add test1.c
commit3:add test3.c
git st 没有任何变化
commit3保留了下来
2、git reset
git
reset 操作之后的commit都不会被保留。
下面的命令会让 `hotfix` 分支回退两个 commits
git checkout hotfix
git reset HEAD~2
--soft: staged snapshot 和 working directory 都未被改变 (建议在命令行执行后,再输入 git status 查看状态)
--mixed: staged snapshot 被更新, working directory 未被更改。【这是默认选项】(建议同上)
--hard: staged snapshot 和 working directory 都将回退。
对应着
git reset -soft :取消了commit
git reset -mixed(默认) :取消了commit ,取消了add
git reset -hard :取消了commit ,取消了add,取消源文件修改
3、check out
(1)、用于切分支 git checkout hotfix
(2)、用于切到其他的commit ID git checkout HEAD~2/[commit id]
(1)git revert命令通过创建一次新的
commit来撤销一次
commit所做出的修改。这种撤销的方式是安全的,因为它并不修改
commitm history, 比如下边的命令将会查出倒数第二次(即当前commit的往前一次)提交的修改,并创建一个新的提交,用于撤销当前提交的上一次
commit)。(总之就是一句话:有了commit
id就可以回到某个版本 git reset --hard 3628164)
git checkout hotfix
git revert HEAD~2
(2)git revert 操作之后的commit都会被保留。
具体一个例子,假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
当执行git revert HEAD~1时, commit2被撤销了
git log可以看到:
commit1:add test1.c
commit3:add test3.c
git st 没有任何变化
commit3保留了下来
2、git reset
git
reset 操作之后的commit都不会被保留。
下面的命令会让 `hotfix` 分支回退两个 commits
git checkout hotfix
git reset HEAD~2
--soft: staged snapshot 和 working directory 都未被改变 (建议在命令行执行后,再输入 git status 查看状态)
--mixed: staged snapshot 被更新, working directory 未被更改。【这是默认选项】(建议同上)
--hard: staged snapshot 和 working directory 都将回退。
对应着
git reset -soft :取消了commit
git reset -mixed(默认) :取消了commit ,取消了add
git reset -hard :取消了commit ,取消了add,取消源文件修改
3、check out
(1)、用于切分支 git checkout hotfix
(2)、用于切到其他的commit ID git checkout HEAD~2/[commit id]
相关文章推荐
- 【转】git reset, revert, checkout介绍及区别
- 详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别
- 详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别
- 代码回滚:git reset、git checkout和git revert区别和联系
- git revert、git reset和git checkout的区别
- git reset, git checkout, git revert 区别
- 关于git的reset、checkout、revert
- git 使用(9)git pull和git fetch、git reset 和 git revert 的区别用法
- git revert和git reset的区别
- 嵌入式 git revert和git reset的区别
- git revert 和reset的区别
- git撤销大全(reset、reflog、revert、checkout、rebase、rm)
- git revert和git reset的区别
- git revert和git reset的区别
- git代码回滚:Reset、Checkout、Revert的选择
- git reset 和 git revert 的区别
- git revert 和 git reset的区别
- git revert和git reset的区别
- git revert和git reset的区别
- git revert和git reset的区别