git撤销修改操作

检查修改

了解了基本概念之后,我们来谈一谈犯错误之后如何撤销的问题。首先,我们要了解如何检查这 3个步骤当中每一个步骤修改了什么,然后才好判断有没有修改成功。检查修改的二级命令都相同,都是 diff,只是参数有所不同。

  • 已修改,未暂存(git diff)
  • 已暂存,未提交(git diff –cache)
  • 已提交,未推送(git diff master origin/master)

撤销修改

  • 已修改,未暂存(git diff)(git reset –hard)
  • 已暂存,未提交(git diff –cache)(git reset –hard)
  • 已提交,未推送(git diff master origin/master)(git reset –hard origin/master)
  • 已推送(git reset –hard HEAD^ / git push -f)

已修改,未暂存

# 如果我们只是在编辑器里修改了文件,还没有执行`git add`
git checkout .

# 或者

git reset --hard

已暂存,未提交

# 如果我们已近执行了`git add .`还没有执行`git commit`
git reset 
git checkout .

# 或者

git reset --hard

已提交,未推送

# 你的手太快,执行了`git add .`,又执行了`git commit`,这个时候你的代码进入了你的本地仓库,
git reset --hard origin/master

已推送

# 很不辛,你的手实在太快了。你既`git add`又`git commit`还`git push`,这个时候你的代码已近进入的远程仓库
# 不保留提交历史
git reset --hard HEAD^
git push -f

# 或者

# 保留提交历史
git revert < sha >
    原文作者:wums
    原文地址: https://segmentfault.com/a/1190000012306659
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞