以前说过我很少用 GIT 命令行,多数时间我都用图形界面工具操作 GIT(现在主要用 RStudio 自带的 GIT 界面),我用的最多的命令大概是 git rebase 和 git stash。过去曾经遇到一些问题需要用到略生僻的命令行,现在汇总一下供自己参考:
-
合并从当前往前 N 条提交记录(这样会丢失提交消息):
git reset --soft HEAD~N -
把前 N 条记录移动到一个新分支中(实质上是新建分支,然后在当前分支中删除 N 条记录,这些记录会在新分支中被保留下来):
git branch newbranch git reset --hard HEAD~N git checkout newbranch -
重命名分支:
git branch -m old-branch new-branch # 本地重命名 # 然后在服务器端删除旧分支并提交新分支 git remote -v git push origin :old-branch git branch --set-upstream origin/new-branch git push origin new-branch -
git remote rename old new -
新建一个干净分支(无历史记录):
git checkout --orphan newbranch git rm -rf . -
删除标签:
# 本地删除 git tag -d tagname # 远端删除 git push --delete origin tagname -
git tag new old git tag -d old git push origin :refs/tags/old git push --tags -
# 先看操作日志,找到想退回的历史记录 git reflog # 假设想退回到 HEAD@{5},那么就重置到那里 git reset --hard HEAD@{5} -
# 先看一眼欲删除的文件列表 git clean -n -x # 如果确定都可以删掉,那么 git clean -f -x -
git remote prune origin
赞赏
作为一名没有固定工作的自由职业者,我非常感谢您通过捐赠的方式来支持我的写作和开源软件开发。当然,捐赠纯属自愿。无论金额多少,都是一片诚挚的心意。支付方式如下:
| 微信 | ← 奋力支开它俩 → | 支付宝 |
|---|---|---|
![]() |
其它爱心通道 ↓ Venmo: @yihui_xie Zelle: xie@yihui.name PayPal: xie@yihui.name |
![]() |
若使用 Venmo/Zelle/Paypal,请添加备注“gift”或“donation”,以免捐赠被视为我的可税收入。若使用 Paypal,支付类型请选 Family and Friends,而不要选 Goods and Services。
在不影响生活的前提下,我会将收到的捐赠以尽量大的比例回馈给开源社区和慈善机构。作为参考,2024-25 年间我共收到约三万美元捐赠,完税后我转手捐出了一万五千美元。

