本地文件修改及撤销
# 对存在git仓库的目录中的文件修改, 如果忘记修改了什么可以执行如下命令 git checkout . # 注意, 这个操作不可逆, 如果文件没有备份, 执行之后是无法再恢复的
git add . 及其反向操作
# 添加当前目录下所有变更到暂存区 git add . # 反向操作, 从暂存区撤回 git reset HEAD .
git commit 及其反向操作
# 将暂存区的变更提交到本地仓库中 git commit -m "提交变更" # 反向操作一, 最常用,将已提交到仓库的变更撤回到暂存区 git reset --soft HEAD~1 # 注意要使用 --soft 参数, 会完整地恢复到提交前的状态 # 反向操作二, 完全撤销已提交的变更, 并不会撤销到暂存区, 而是直接删 git reset --hard HEAD~1 # 慎用!操作不可逆!
git pull 及其反向操作
如果远程仓库有变更, 那么拉取的时候会和本地合并, 并生成一次合并记录
有时不想合并, 因为盲目合并可能会导致一次灾难。 反向操作和 git commit的思路相同, 都是针对本地提交的撤销
# 拉取远程代码 git pull # 撤销自动合并 git reset --soft HEAD~1 # 执行这句可以将拉取代码恢复到暂存区 # 完全撤销自动合并 git reset --hard HEAD~1 # 执行这句则完全恢复到合并以前的状态
git push 及其反向操作
如果已经远程提交成功,撤销远程提交这种操作不是常规操作, 应该尽量避免。
思路是,
先将本地操作回滚到修改之前, 就是和远程仓库一致的那个版本
再次强制提交这个版本, 将服务器版本强制更新
# 提交本地变更到远程仓库 git push # 1. 回滚本地提交到指定版本, 注意如果加--soft参数, 只能用HEAD~n这种回退形式 git reset --soft HEAD~1 # 2. 提交之前的版本
git stash 及其反向操作
# 保存当前变更为临时记录, 恢复当前目录到HEAD所在版本 git stash save # 从临时记录中恢复 git stash pop
标签:HEAD,git,--,反向,提交,操作,退回 From: https://www.cnblogs.com/playforkeeps/p/17458008.html