#技术

5 个我每天都在用的 Git 技巧

1. git stash -p

有时候改了一半,需要切分支,但又不想提交半成品。git stash -p 可以逐个 hunk 选择要 stash 的内容:

git stash -p
# y = stash this hunk
# n = don't stash this hunk
# s = split into smaller hunks

git stash --all 精细得多。

2. git log --oneline --graph -20

git log 好看 100 倍:

* a1b2c3d 添加搜索功能
* d4e5f6g 修复首页样式
|\
| * h7i8j9k 实验性功能
|/
* k0l1m2n 初始化

3. 修改上一次提交的信息

git commit --amend -m "新的提交信息"

注意:只能改还没 push 的提交。已经 push 了的别 amend。

4. git checkout -

回到上一个分支,像 cd - 一样好用:

git checkout main
# ...做些事...
git checkout -    # 回到之前的分支

5. git blame 查历史

git blame path/to/file.py -L 42,50

只看第 42 到 50 行是谁改的、什么时候改的、为什么改的(配合 git log --follow 看完整历史)。

额外赠送

# 撤销最后一次 commit,保留改动
git reset --soft HEAD~1

# 查看某个文件在所有 commit 中的变化
git log -p -- path/to/file

这些不是冷门命令,是每天能帮你省 30 秒的东西。省下来的时间积少成多。