git撤销命令

使用git之前,首先要搞清楚下面几个概念:

  • 工作区(本地项目,不包含.git目录)
  • 本地仓库(版本库,.git目录)
  • 暂存区(index)
  • 远程仓库
常用撤销命令:
  • 撤销修改:类似于使用vs code中的 放弃更改
git checkout fileName    // 撤销某一文件修改
git checkout .   // 撤销所有文件修改
  • 撤销add:类似于使用vs code中的 取消暂存更改
git reset HEAD fileName   // 撤销add操作的某个文件
git reset HEAD .    // 撤销本地所有add操作
  • 撤销commit:
git add fileName
git commit --ament -m “说明” 
// 修改commit后的文件,再 git commit--ament -m “xxx”  提交,用于文件commit后仍想修改说明,但不产生新的commit的情况
git reset --hard HEAD^
// 回退到上一个commit后的版本,前提是没有推送到远程库

HEAD表示当前版本
HEAD^表示上一个版本
HEAD^^表示上上一个版本
以此类推……
HEAD~10表示回退到上10个版本

git reset [--hard|soft|mixed|merge|keep] 版本号
// 根据commit版本号回退到某一提交版本

mixed:不删除工作空间改动代码,撤销commit和add(默认)
soft:不删除工作空间改动代码,撤销commit,不撤销add
hard:删除工作空间改动代码,撤销commit,撤销git add

git revert -n 目标版本号
// 撤销目标版本号所做的修改,但不改变该版本之后提交的版本
  • 回滚push:
// 先在本地回退到相应的版本
git reset --hard commitId   // 回退到指定版本
// 再强制推到远程库
git push origin <分支名> --force
// 此时,远程库也就回到了相应的版本
// 危害:可能会覆盖远程库中别人的代码!!!
// revert反做:撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程
git revert -n 版本号
// 然后对需要提交的内容重新add、commit、push推到远程库

注:reset是撤销到某次提交,revert是重做某次提交

个人认为下面的图描述的比较清晰(侵删)


命令及概念关系
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 夜莺2517阅读 128,575评论 1赞 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 7,828评论 1赞 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 9,108评论 28赞 54
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 2,901评论 2赞 9

友情链接更多精彩内容