DevOps
终端 Git 效率提升
通过 Git 别名、shell 自动补全、lazygit、tig、delta diff 查看器和 git-prompt 定制等工具,大幅提升终端 Git 操作效率。
- 要在 CI/CD 与 IDE 中使用 Git 的开发者
- 想理解管线中 Git 操作的边界和安全性
- 知道 branch、commit、push 的基本用法
- 有基础 CI/CD 概念
- 在 CI 中误用 GITHUB_TOKEN 导致安全风险
- 不理解 shallow clone 和 partial clone 的区别
- 依赖 IDE 操作而不理解底层 Git 行为
学完这篇你会掌握什么
- 理解 终端 Git 效率提升 的核心作用和适用场景
- 掌握 终端 Git 效率提升 的基本用法和常用参数
- 通过 Git 别名、shell 自动补全、lazygit、tig、delta diff 查看器和 git-prompt 定制等工具,大幅提升终端 Git 操作效率。
- 理解 Git 别名 相关的概念
- 掌握 Shell 自动补全 相关的操作
- 知道在什么场景下使用该命令,什么场景下避免使用
先想一个问题
你的团队正在引入 CI/CD,或者你正在配置 IDE 中的 Git 集成——但你不确定在自动化的场景下,Git 的行为和本地手动操作有什么不同,需要注意什么安全问题。
一句话理解
终端是 Git 的原生环境,通过别名、专用工具和定制提示符,可将日常 Git 操作效率提升数倍。
Git 别名
[alias]
st = status
co = checkout
br = branch
ci = commit
di = diff
lg = log --oneline --graph --all --decorate
aa = add --all
unstage = reset HEAD --
undo = reset --soft HEAD~1
ri = rebase -i
tree = log --all --graph --oneline --decorate
cleanup = !git branch --merged main | grep -v \" main\" | xargs -r git branch -d
lines = !git log --author=\"$(git config user.name)\" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf \"added: %s, removed: %s, total: %s\", add, subs, loc }'
Shell 自动补全
Bash:
source /usr/share/bash-completion/completions/git
export GIT_PS1_SHOWDIRTYSTATE=true
Zsh (oh-my-zsh):
plugins=(git gitfast)
Fish (内置补全):
abbr -a gst 'git status'
abbr -a gco 'git checkout'
abbr -a glg 'git log --oneline --graph --all --decorate'
lazygit
brew install lazygit
cd my-project && lazygit
| 面板 | 快捷键 | 功能 |
|---|---|---|
| 文件 | Space | 暂存/取消 |
| 文件 | c | 提交 |
| 分支 | b | 切换分支 |
| 提交 | s | Squash |
配置 delta 为分页器:git.paging.pager: delta。
tig
brew install tig
tig # 提交历史
tig status # 状态
tig blame file # Blame
delta — 增强 Diff
[core]
pager = delta
[delta]
side-by-side = true
line-numbers = true
syntax-theme = Dracula
特性:语法高亮、并排视图、行号、代码导航。
git-prompt
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUPSTREAM="auto"
PS1='\w$(__git_ps1 " (%s)")\$ '
或使用 starship:
[git_branch]
format = "on [$symbol$branch]($style) "
[git_status]
staged = "+\${count}"
modified = "!\${count}"
git-branchless
brew install git-branchless
git sl # 智能提交图
git undo # 撤销上次操作
git restack # 修复中断的依赖
git record # 交互式暂存并提交
其他工具
| 工具 | 用途 |
|---|---|
| git-extras | 额外 Git 命令集合 |
| gh (GitHub CLI) | GitHub 命令行 |
| forgit | fzf Git 集成 |
| gita | 多仓库管理 |
给你的练习
- 在一个测试仓库中练习该命令的基本用法,观察执行前后的状态变化
- 尝试该命令的不同参数选项,对比输出结果的差异
- 模拟一个需要使用该命令的实际场景,完整走一遍操作流程
继续学习建议
commands/git-config— Git 配置详解commands/git-log— git log 高级用法best-practices/git-aliases— Git 别名最佳实践
上下篇
上一篇IntelliJ IDEA Git 深度指南命令专题
下一篇当前方向没有更多内容