git 常规操作 及退回操作

本地文件修改及撤销

# 对存在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

 

posted @   playforkeeps  阅读(109)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示