Appearance
命令行增强工具
以下工具让 Git 命令行操作更加高效和直观。
Oh My Zsh Git 插件
Oh My Zsh 的 Git 插件提供了大量别名和辅助函数:
bash
# 安装 Oh My Zsh(如果未安装)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 在 ~/.zshrc 中启用 git 插件
plugins=(git)常用别名(部分):
bash
g = git
ga = git add
gaa = git add --all
gco = git checkout
gcb = git checkout -b
gb = git branch
gbr = git branch --remote
gc = git commit -v
gcmsg = git commit -m
gd = git diff
gf = git fetch
gl = git pull
gp = git push
gpsup = git push --set-upstream origin $(git_current_branch)
grb = git rebase
grbi = git rebase -i
gst = git status
gstp = git stash pop
glog = git log --oneline --decorate --graph完整列表:Oh My Zsh Git 别名
git-delta(美化 diff 输出)
delta 是一个语法高亮、行号显示的 diff 查看工具:
安装
bash
# macOS
brew install git-delta
# Ubuntu/Debian
sudo apt install git-delta
# Windows
winget install dandavison.delta配置
在 ~/.gitconfig 中:
ini
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true # 使用 n/N 在 diff 块间跳转
light = false # 暗色主题
side-by-side = true # 并排显示(可选)
line-numbers = true # 显示行号
syntax-theme = Dracula
[merge]
conflictstyle = diff3
[diff]
colorMoved = default效果:
- 语法高亮(识别编程语言)
- 显示行号
- 漂亮的颜色方案
- 清晰的分隔符
tig(终端 Git 浏览器)
tig 是一个基于 ncurses 的终端 Git 界面:
安装
bash
# macOS
brew install tig
# Ubuntu/Debian
sudo apt install tig使用
bash
# 查看提交历史(主界面)
tig
# 查看特定文件的历史
tig src/app.js
# 查看所有分支
tig --all
# blame 视图
tig blame src/app.js
# 查看 stash
tig stashtig 快捷键:
j/k 向下/上移动
Enter 进入详情视图
h 显示帮助
q 退出
/ 搜索
d 差异视图
y blame 视图
r 引用视图(分支/标签列表)
s 状态视图(类似 git status)
c 提交视图lazygit(终端 Git UI)
lazygit 是功能最强大的终端 Git 界面,支持几乎所有 Git 操作:
安装
bash
# macOS
brew install lazygit
# Ubuntu/Debian
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
# Windows
winget install JesseDuffield.lazygit
# 在 VS Code 终端中使用
alias lg='lazygit'主要功能
lazygit 界面分为 5 个面板:
1. 文件(Files) - 工作区状态,暂存/取消暂存
2. 分支(Branch)- 分支管理
3. 提交(Commits)- 提交历史,可以 rebase/cherry-pick
4. 贮藏(Stash)- stash 管理
5. 差异(Diff) - 右侧显示当前选中的差异
常用操作:
Space 暂存/取消暂存
c 提交
P push
p pull
b 新建分支
d 删除
r 重命名/rebase
e 编辑提交(rebase -i)
i 交互式 rebase(选择多个提交)
? 帮助为什么选择 lazygit:
- 可以用键盘完成几乎所有 Git 操作
- 交互式 rebase 变得非常直观
- 可视化解决冲突
- 支持 stash 的所有操作
- 与 VS Code 的 terminal 集成完美
fzf + git 联动
fzf 是一个命令行模糊搜索工具,与 Git 结合极其强大:
安装
bash
# macOS
brew install fzf
$(brew --prefix)/opt/fzf/install # 安装 shell 绑定
# Ubuntu/Debian
sudo apt install fzf
# Windows
winget install fzfGit + fzf 组合
bash
# 模糊选择分支并切换
git branch | fzf | xargs git switch
# 模糊选择分支并切换(简化别名)
alias gco='git branch | fzf | xargs git switch'
# 模糊搜索提交历史
git log --oneline | fzf --preview 'git show --color=always {1}'
# 模糊选择文件并查看 blame
git ls-files | fzf --preview 'git blame --color=always {}' | xargs git blame
# 模糊选择 stash 并应用
git stash list | fzf | grep -oE 'stash@{[0-9]+}' | xargs git stash pop高级别名(添加到 ~/.zshrc 或 ~/.bashrc):
bash
# 模糊搜索分支并切换
fbr() {
local branches branch
branches=$(git branch --all | grep -v HEAD) &&
branch=$(echo "$branches" | fzf -d $(( 2 + $(wc -l <<< "$branches") )) +m) &&
git checkout $(echo "$branch" | sed "s/.* //" | sed "s#remotes/[^/]*/##")
}
# 模糊搜索提交历史(可以 checkout 到选中的提交)
fco() {
local commits commit
commits=$(git log --pretty=oneline --abbrev-commit --reverse) &&
commit=$(echo "$commits" | fzf --tac +s +m -e) &&
git checkout $(echo "$commit" | sed "s/ .*//")
}
# 模糊搜索标签
ftag() {
git tag | fzf | xargs git checkout
}工具组合推荐
bash
# 日常开发的推荐工具链
brew install git-delta tig lazygit fzf
# ~/.gitconfig 配置 delta
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
# ~/.zshrc 别名
alias lg='lazygit'
alias t='tig'
alias gco='git branch | fzf | xargs git switch'总结
| 工具 | 用途 | 学习成本 |
|---|---|---|
| Oh My Zsh Git 插件 | 命令别名 | 低(直接使用即可) |
| git-delta | 美化 diff 输出 | 低(配置后自动生效) |
| tig | 终端浏览仓库历史 | 中(需要熟悉快捷键) |
| lazygit | 终端 Git 全功能界面 | 中(功能强大,值得投入) |
| fzf | 模糊搜索增强 | 中(需要配置别名) |
这些工具的共同特点是:不改变 Git 的底层行为,只是让命令行操作更加高效和直观。推荐至少尝试 git-delta 和 lazygit,它们能显著提升日常 Git 操作体验。