git 回溯commit

git reset --hard xxx
git reset --soft xxx
git revert xxx

以上三个命令行的区别

first thinkin

  1. 命令 git resetgit revert命令行是将working directory和staging area 区块之间的状态回溯
  2. 即,当使用了 git add ./后将所有的更改文件缓存到staging area 后发现自己文件更改错误,还是需要之前一个版本的代码状态
  3. git resetgit revert都是将缓存区的代码状态更改到之前版本,不同的是git reset是回到之前的版本代码.git文件中是不会
    记载当时git add ./文件后的git流程节点
  4. git revert是保留git add ./后增加的流程节点,再增加一次流程节点到之前的版本的代码状态

search answer

不带参数和属性的 git reset 的确是缓存区和working directory之间的代码回溯状况,
but 带参数和属性的git reset 就没有这么简单了。

  • git reset远程git 回溯到指定的代码状态

git log可以查看git commit的节点名称 还可以用HEAD来指向当前分支的节点
git reset HEAD^ --hard HARD^是指之前的一个分支

git 回溯commit_第1张图片
以--hard属性为例子的操作

而后面 --hard--softmixed是代表代码回溯到某个commit节点后的作用域

--soft ––  缓存区和工作目录都不会被改变
--mixed ––  默认选项。缓存区和你指定的提交同步,但工作目录不受影响
--hard ––  缓存区和工作目录都同步到你指定的提交

  • git revert HEAD^ 是重新再回滚到之前的节点但是并不消除原来的commit
    其作用域不作用于缓存区和working directory

你可能感兴趣的:(git 回溯commit)