归档/2025.02.16·git

我每天都在用的git命令

Git 命令那么多,真正每天高频敲的也就那几个。这里整理了我平时用的最多的几个命令,包括怎么优雅地建分支、用 stash 救场,还有怎么用 rebase 把提交历史整理得干干净净。

在入职影刀后,我的版本控制工作流逐渐转向以命令行操作为主。除查看合并历史等特定场景会使用TortoiseGit外,90%的Git操作都通过命令行完成。本文将分享我日常高频使用的Git命令及其应用场景。

功能开发与问题修复

创建特性分支和修复分支是日常开发的基础操作:

git checkout -b feat-xxx  # 功能开发分支
git checkout -b fix-xxx   # bug修复分支

代码暂存管理

当编码过程中需要临时切换上下文时(如紧急问题排查),推荐使用Git stash机制:

命令用途
git stash list查看所有暂存栈
git stash save "temp_code"将工作区改动暂存并命名
git stash apply stash@{n}恢复指定索引的暂存
git stash pop恢复最近一次暂存并出栈

最佳实践:建议为每个stash添加语义化名称,便于后续检索。

Commit Message修改

最近一次Commit修改

git commit --amend

该命令会打开Vim编辑器,:wq保存修改后的message。

历史Commit修改

对于需要修改历史记录中第N个commit message的情况:

git rebase -i HEAD~N

在交互界面中将目标commit的pick改为reword后保存退出。

Commit合并策略

对于需要整理提交历史的场景(如功能开发产生多个零散commit):

git rebase -i HEAD~N

在rebase交互界面中:

  1. 保留首个commit为pick
  2. 后续需要合并的commit改为squash
  3. 保存退出后编辑最终合并的message

历史Commit删除

典型场景:当开发分支包含其他未合并到master的依赖commit时:

git rebase -i HEAD~N

在编辑界面中:

pick c1  # 保留
pick c2  # 保留
drop c3  # 删除依赖commit
drop c4
drop c5
pick c6  # 保留
pick c7  # 保留

最后执行git rebase master与主分支同步。

You only live once, but if you do it right, once is enough.