GIT撤销修改
作者:matrix 发布时间:2022-04-01 分类:Linux
撤销本地修改
本地代码仅是修改,还未做任何提交(add/commit操作)
$ git checkout file_name_path_1 file_name_path_2 file_name_path_3... #撤销指定文件的修改
$ git checkout . #撤销所有文件的修改
git checkout会直接还原修改的文件到仓库版本
撤销add
$ git reset HEAD file_name_path1 #指定还原文件的add操作
$ git reset HEAD #还原所有文件
撤销commit
已经commit提交,没有push到远端
#修改(替换)掉上次的commit
$ git commit --amend -m "Fix bug #42"
#撤销commit操作(保留修改)
$ git reset HEAD^ #回到上一提交版本
#撤销commit操作(放弃修改)
$ git reset --hard HEAD^
#手动reset 版本id
$ git reset [--soft|--mixed|--hard] COMMIT_ID #COMMIT_ID为需要还原到的正确版本(正确要保留的版本)
--mixed
会保留源码,只是将git commit和index 信息回退到了某个版本.
--soft
保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
--hard
源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)
撤销push
还原已提交push的修改,本质是新增commit提交
方法1 还原指定版本的修改:
$ git revert COMMIT_ID #COMMIT_ID为需要撤销的版本(丢弃不要的版本)
$ git push #再执行推送
方法2 硬删除之后的所有提交:
$ git reset --hard COMMID_ID #最近提交需要的版本(删除之后的所有提交)
$ git push -f
http://www.ruanyifeng.com/blog/2019/12/git-undo.html
http://blog.csdn.net/zhangkongzhongyun/article/details/8025288
https://www.cnblogs.com/wuyun-blog/p/10026363.html
https://www.jianshu.com/p/37f3a7e4a193