点击命令即コピー。
仓库与配置
| git init | 在当前目录初始化仓库 |
| git clone <url> | 克隆远程仓库 |
| git clone --depth 1 <url> | 浅克隆(仅最新提交) |
| git config --global user.name "名字" | 设置全局用户名 |
| git config --global user.email "邮箱" | 设置全局邮箱 |
| git config --list | 查看所有配置 |
日常提交
| git status | 查看工作区状態 |
| git add <文件> | 暂存指定文件 |
| git add -A | 暂存全部改动(含删除) |
| git add -p | 交互式分块暂存 |
| git commit -m "说明" | 提交暂存区 |
| git commit -am "说明" | 暂存已跟踪文件并提交 |
| git commit --amend | 修改最近一次提交 |
| git diff | 工作区与暂存区差异 |
| git diff --staged | 暂存区与上次提交差异 |
分支
| git branch | 列出本地分支 |
| git branch -a | 列出所有分支(含远程) |
| git switch -c <分支> | 创建并切换分支 |
| git switch <分支> | 切换分支 |
| git branch -d <分支> | 删除已合并分支 |
| git branch -D <分支> | 强制删除分支 |
| git merge <分支> | 合并分支到当前 |
| git rebase <分支> | 变基到目标分支 |
| git rebase -i HEAD~3 | 交互式整理最近 3 次提交 |
远程
| git remote -v | 查看远程仓库 |
| git remote add origin <url> | 添加远程 |
| git fetch | 拉取远程更新(不合并) |
| git pull | 拉取并合并 |
| git pull --rebase | 拉取并变基 |
| git push | 推送当前分支 |
| git push -u origin <分支> | 首次推送并跟踪 |
| git push --force-with-lease | 安全强推 |
| git push origin --delete <分支> | 删除远程分支 |
撤销与恢复
| git restore <文件> | 丢弃工作区改动 |
| git restore --staged <文件> | 取消暂存 |
| git reset --soft HEAD~1 | 撤销提交,保留暂存 |
| git reset --mixed HEAD~1 | 撤销提交与暂存,保留改动 |
| git reset --hard HEAD~1 | 彻底回退(丢弃改动) |
| git revert <提交> | 生成反向提交撤销 |
| git checkout <提交> -- <文件> | 恢复某文件到指定提交 |
| git reflog | 查看所有操作レコード(找回丢失提交) |
暂存 (stash)
| git stash | 暂存当前改动 |
| git stash -u | 连同未跟踪文件一起暂存 |
| git stash list | 查看暂存列表 |
| git stash pop | 恢复最近暂存并删除 |
| git stash apply stash@{1} | 恢复指定暂存 |
| git stash drop | 删除最近暂存 |
日志与查找
| git log --oneline --graph --all | 图形化简洁日志 |
| git log -p <文件> | 查看文件改动历史 |
| git log --author="名字" | 按作者筛选 |
| git log --since="2 weeks ago" | 按时间筛选 |
| git blame <文件> | 逐行查看修改者 |
| git show <提交> | 查看提交详情 |
| git grep "关键字" | 在仓库内搜索 |
| git bisect start | 二分查找引入 bug 的提交 |
标签与清理
| git tag v1.0.0 | 打轻量标签 |
| git tag -a v1.0.0 -m "说明" | 打附注标签 |
| git push --tags | 推送所有标签 |
| git clean -fd | 删除未跟踪文件与目录 |
| git gc --prune=now | 垃圾回收 |