Git 新手最容易忽略的 5 个命令
刚学 Git 的时候,很多人只会 add、commit、push、pull 四件套。等真正开始协作,才发现有些"冷门"命令才是救命神器。下面这 5 个,是我踩过坑之后才真正学会的。
1. git stash:改到一半被叫去修 bug
正在写功能,突然线上出 bug 要你切分支去修,但当前改动又不想提交。git stash 就是干这个的:一键把工作区改动"藏"起来,切分支修完 bug 回来,再 git stash pop 恢复。
git stash # 藏起当前改动
git stash list # 查看藏了几份
git stash pop # 恢复最近一份并删除记录
坑点:pop 有冲突时不会自动删除 stash 记录,先解决冲突再 git stash drop。
2. git reflog:reset 错了也不慌
git reset --hard 把提交弄丢了?别慌,git reflog 记录了 HEAD 的每一次移动,配合 git reset --hard <编号> 就能找回来。它相当于 Git 的"后悔药",reflog 默认保留 90 天。
git reflog
git reset --hard HEAD@{2} # 回到 reflog 里记录的某个位置
3. git cherry-pick:只想要某一个提交
A 分支上有个提交修了个通用 bug,想拿到当前分支来,又不想整支合并。git cherry-pick <commit> 只把那一个提交"摘"过来,干净利落。
git cherry-pick 3a5f2c1
注意:摘过来会产生一个新的 commit id,原提交和新提交是两个对象,别指望它们"相等"。
4. git bisect:用二分法找 bug 是哪次提交引入的
“上个版本还是好的,这版就坏了”,中间隔了几十个提交,一个个试太蠢。git bisect 自动二分:你只需在每个中间版本上标记 good 或 bad,它帮你定位到第一次出问题的提交。
git bisect start
git bisect bad # 当前版本是坏的
git bisect good v1.2.0 # v1.2.0 是好的
# 按提示逐个测试并标记 good/bad
git bisect reset # 定位到后退出
5. git worktree:同时开两个分支干活
切分支要暂存改动很烦?git worktree 让同一个仓库在另一个目录再检出一份工作区,两个分支并行,互不干扰。
git worktree add ../hotfix hotfix-branch
git worktree list
git worktree remove ../hotfix
结语
这 5 个命令的共同点:平时用不上,用上一次就值回票价。建议收藏这篇,下次手忙脚乱的时候回来翻。你在用 Git 时还踩过哪些坑?欢迎评论区交流。
- 点赞
- 收藏
- 关注作者
评论(0)