Git求生指南:7大高频灾难现场与终极命令手册

Git求生指南:7大高频灾难现场与终极命令手册

一、清晨的噩梦:代码消失了!

场景:昨晚写的200行代码今早不翼而飞

# 1. 查看死亡现场(工作区/暂存区状态)
$ git status

# 2. 时间倒流术(恢复未暂存修改)
$ git restore <file>          # 撤销工作区修改
$ git restore --staged <file> # 撤销暂存区修改

# 3. 终极复活术(找回已删除文件)
$ git checkout HEAD -- <file> # 从最后一次提交恢复

二、分支迷航:在代码宇宙中迷失方向

场景:同时开发3个功能却忘了自己在哪

# 1. 创建安全航道(分支操作)
$ git branch feature-payment  # 创建分支
$ git switch feature-payment  # 切换分支(推荐!)
$ git switch -                # 回到上一个分支

# 2. 查看星际地图(分支拓扑)
$ git log --oneline --graph --all
* 7a3b1d7 (HEAD -> main) 修复登录BUG
| * d9f4a02 (feature-payment) 支付接口
|/
* c810e9d 初始化项目

# 3. 紧急迫降(强制回退分支)
$ git reset --hard origin/main # 丢弃本地所有修改

三、提交污染:把TODO推上了生产线

场景:不小心提交了未完成的代码

# 1. 撤回未推送的提交
$ git reset HEAD~1            # 撤回commit保留修改
$ git reset --soft HEAD~1     # 撤回commit且保留暂存

# 2. 修改历史提交记录(危险操作!)
$ git commit --amend          # 修改最后一次提交
$ git rebase -i HEAD~3        # 交互式修改多个提交

# 3. 已推送代码的拯救方案
$ git revert <commit-id>      # 生成反向提交抵消错误

四、冲突风暴:合并时遭遇代码核战

场景:多人修改同一文件引发冲突

<<<<<<< HEAD
console.log("新版本功能");
=======
console.log("旧版本逻辑");
>>>>>>> feature-old

# 1. 手动解决冲突后标记完成
$ git add conflict-file.js
$ git commit -m "解决合并冲突"

# 2. 使用可视化工具(VSCode内置)
$ git mergetool

# 3. 放弃合并回到和平年代
$ git merge --abort

五、文件失踪案:误删重要代码

场景:手滑执行了 rm -rf

# 1. 从Git回收站找回(所有未提交删除可恢复)
$ git restore deleted-file.js

# 2. 查看历史操作记录
$ git reflog                 # 找到删除前的commit
d9f4a02 HEAD@{1}: commit: 支付接口开发

# 3. 时空穿越恢复文件
$ git checkout d9f4a02 -- src/payment.js

六、提交洁癖:打造完美Commit历史

场景:提交记录杂乱像垃圾场

# 1. 整理本地提交(交互式变基)
$ git rebase -i HEAD~5
# 弹出编辑窗口:
pick c810e9d 初始化
squash 7a3b1d7 修复BUG
reword d9f4a02 支付功能

# 2. 压缩多个提交为原子提交
$ git reset --soft HEAD~3
$ git commit -m "完整支付模块"

# 3. 重写提交信息
$ git commit --amend -m "更清晰的描述"

七、远程作战:团队协作生存法则

场景:同事的代码覆盖了你的修改

# 1. 安全推送三板斧
$ git fetch                 # 先查看远程变化
$ git rebase origin/main    # 变基整合(保持历史线性)
$ git push --force-with-lease # 安全强制推送

# 2. 抢救被覆盖的提交
$ git reflog show origin/main
$ git push origin d9f4a02:main --force

# 3. 创建安全隔离区
$ git worktree add ../hotfix-branch
$ cd ../hotfix-branch
$ git switch hotfix         # 完全独立的工作目录

命令速查表(文字版)

场景救命命令危险系数
撤销修改git restore <file>★☆☆☆☆
分支切换git switch -★☆☆☆☆
修改历史git rebase -i★★★★☆
强制推送--force-with-lease★★★☆☆
找回删除文件git checkout HEAD^ -- <file>★☆☆☆☆

「小贴士」:点击头像→【关注】按钮,获取更多软件测试的晋升认知不迷路! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值