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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具