We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
当操作错误覆盖了别人的代码的时候就需要撤回。关于撤回,有两个命令:reset和revert。他们都可以完成撤回的操作,但是作用原理是不同的。
reset
revert
git reset命令可以回到之前的某一次提交。如果想回到上次提交,可以使用命令:
git reset
git reset --hard head
如果是上上次就是head^,多次可以用head~n,例如前五次head~5,或者知道commit id的话可以直接用这个id重置到这次提交:
head^
head~n
head~5
commit id
git reset (复制的commitId)--hard
关于hard这种修饰符可以参考下面的解释,详情查看官网相关参数
hard
--soft 回退后a分支修改的代码被保留并标记为add的状态(git status 是绿色的状态) --mixed 重置索引,但不重置工作树,更改后的文件标记为未提交(add)的状态。默认操作。 --hard 重置索引和工作树,并且a分支修改的所有文件和中间的提交,没提交的代码都被丢弃了。 --merge 和--hard类似,只不过如果在执行reset命令之前你有改动一些文件并且未提交,merge会保留你的这些修改,hard则不会。【注:如果你的这些修改add过或commit过,merge和hard都将删除你的提交】 --keep 和--hard类似,执行reset之前改动文件如果是a分支修改了的,会提示你修改了相同的文件,不能合并。如果不是a分支修改的文件,会移除缓存区。git status还是可以看到保持了这些修改。
git revert回到某一次提交的原理是在已有提交记录的最后面新添加一个commit,而这个commit的内容就是目标提交的内容。例如
git revert
commit
git revert (复制的commitId)
git reset会改变已有的提交记录,而git revert只是会在已有的提交记录上添加一条提交记录,所以后者是一种相对安全的回退方式。
我们再自己的个人分支上可以使用git reset,在公共分支上最好使用git revert。也可以这样区分,用git revert撤销已经推送的更改,用git reset撤销还没推送的更改。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
撤回操作
当操作错误覆盖了别人的代码的时候就需要撤回。关于撤回,有两个命令:
reset
和revert
。他们都可以完成撤回的操作,但是作用原理是不同的。git reset
git reset
命令可以回到之前的某一次提交。如果想回到上次提交,可以使用命令:如果是上上次就是
head^
,多次可以用head~n
,例如前五次head~5
,或者知道commit id
的话可以直接用这个id重置到这次提交:关于
hard
这种修饰符可以参考下面的解释,详情查看官网相关参数git revert
git revert
回到某一次提交的原理是在已有提交记录的最后面新添加一个commit
,而这个commit
的内容就是目标提交的内容。例如不同
git reset
会改变已有的提交记录,而git revert
只是会在已有的提交记录上添加一条提交记录,所以后者是一种相对安全的回退方式。我们再自己的个人分支上可以使用
git reset
,在公共分支上最好使用git revert
。也可以这样区分,用git revert
撤销已经推送的更改,用git reset
撤销还没推送的更改。参考
The text was updated successfully, but these errors were encountered: