我每天都在用的git命令

2025-02-16T00:00:00Z | 2分钟阅读 | 更新于 2025-02-16T00:00:00Z

@

在入职影刀后,我的版本控制工作流逐渐转向以命令行操作为主。除查看合并历史等特定场景会使用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.

© 2025 huanjian's blog

🌱 Powered by Hugo with theme Dream.

Me

你好,我是火箭。火箭是我在在公司和互联网上使用的花名。 我的主要工作是开发 Windows 客户端软件,技术栈以 WPF + C# 为主。业余时间会折腾一些小项目,通常是 React + FastAPI 的组合,先现生活在杭州,活动范围主要是江浙沪这块。独立博客看得多了,也逐渐被激发了表达欲,注册域名,做了我的独立博客。

爱好
  • 三国演义:从大二开始听评书版的《三国演义》,现在主要是作为睡前小故事来听(我估计是第七八遍了)
  • 写代码:没错,写代码也是我的爱好。只要出门超过半天,我基本都会背着笔记本,随时可能进入“编码模式”。
  • 健身:曾经的爱好。结婚之后就逐渐被抛弃了 🤷,结婚一年涨了10斤。
  • 看电影:后续可能会写影评。
  • 探索新事物和工具:准备开一个主题,专门分享我接触到的各种新玩意儿。
记录什么?
  • 学习笔记

  • 一些想法:记录日常思考,不一定有结论,更像是一种随手的表达。

  • 旅游与随笔:旅行时的见闻与感受,以及偶尔的文字随笔。