Git 命令速查清单
你动手时,把下面所有占位符换成自己的真实值即可:
示例项目→ 你自己的项目名your-git-username→ 你的 GitHub / Gitee 用户名your-email@example.com→ 你的提交邮箱demo-project→ 你的仓库名
1. 查看状态
bash
# 查看当前工作区状态(分支、哪些文件改了)
git status -sb
# 只看文件名(脚本用,简洁格式)
git status --porcelain
# 查看最近 3 条提交记录
git log --oneline -3
# 查看已暂存(git add 过)的文件列表
git diff --cached --name-only
# 只看暂存区里的新增(A)和修改(M)文件,排除删除(D)的
git diff --cached --name-status --diff-filter=AM
# 列出 git 正在跟踪的所有文件
git ls-files
# 查看远程仓库列表(fetch 和 push 地址)
git remote -v
2. 配置提交者身份(只改当前仓库,不动全局)
bash
# 设当前仓库的提交者名字(--local,不影响其它仓库)
git config user.name "your-git-username"
# 设当前仓库的提交者邮箱
git config user.email "your-email@example.com"
# 查看本仓库已设的身份
git config user.name
git config user.email
# 查看全局身份(不动它)
git config --global user.name
git config --global user.email
为什么要设 local?你的全局 git 身份可能是另一个账号(比如公司内网的代码平台)。推 GitHub 时,如果想让 commit 归属 GitHub 账号(显示头像、计入贡献墙),就在这个仓库单独设 local 身份。不设也行,commit 照样能推,只是 GitHub 上显示 unknown。
3. .gitignore --- 忽略文件(不进仓库)
# .gitignore 文件内容示例:
.env # 含 API key 的环境变量,绝不推
data/ # 运行时数据(数据库、向量库等)
.workbuddy/ # 工作记忆/工具目录
.claude/ # IDE 工具目录
PROJECT.md # 项目指令/配置说明文件
docs/ # 文档
overview.md # 报告文件
.gitignore只对从未被跟踪 的文件生效。如果文件已经被git add过,光加进.gitignore没用,还得git rm --cached从索引移除。
4. 从 git 索引移除文件(磁盘文件保留)
bash
# 把已跟踪的目录从 git 索引移除(磁盘文件不动)
git rm -r --cached .claude PROJECT.md docs
# --cached = 只从索引删,不删磁盘文件
# -r = 递归(目录里所有文件)
执行后这些文件状态变成
D(deleted from index),提交后它们就彻底从仓库消失了。
5. 暂存(git add)
bash
# 暂存所有改动(新增、修改、删除一起加)
git add -A
# 只暂存某个文件
git add README.md
# 强制暂存被 .gitignore 忽略的文件
git add -f docker-compose.local.yml
# 预览将要暂存什么(不实际执行,-n = dry-run)
git add -A -n
6. 提交(git commit)
bash
# 单行提交信息
git commit -m "feat: 添加新功能"
# 多行提交信息(标题 + 正文,用多个 -m)
git commit -m "feat: 示例项目二阶段部署" -m "详细说明..."
# 多行提交信息(heredoc 方式,适合长文本)
git commit -m "标题
正文第一行
正文第二行"
commit message 格式建议:
类型: 简述。常用类型:feat(新功能)、fix(修bug)、refactor(重构)、docs(文档)、chore(杂项)。
7. 远程仓库(git remote)
bash
# 添加一个远程仓库(代号叫 github,指向 GitHub 地址)
git remote add github https://github.com/your-git-username/demo-project.git
# 添加另一个远程仓库(代号叫 origin,指向另一个代码平台,如 Gitee)
# (这个之前已经配好了,不用重复)
git remote add origin https://gitee.com/your-git-username/demo-project.git
# 查看所有远程仓库
git remote -v
# 删除远程仓库
git remote remove github
# 修改远程仓库地址
git remote set-url github https://新地址.git
一个本地仓库可以有多个 remote。
origin和github只是代号,互不干扰,各推各的。
8. 推送(git push)
bash
# 推送到 github 这个 remote 的 master 分支
# -u = 设置上游跟踪,以后直接 git push 就行
git push -u github master
# 以后每次推(已设过 -u)
git push
# 同时推到所有 remote
git push origin master && git push github master
# 强制推送(⚠️ 覆盖远程历史,慎用)
git push -f github master
首次 push 到 GitHub 时,会弹出认证窗口,登录你的 GitHub 账号即可。之后会缓存凭据,不用每次登录。
9. 其他常用命令
bash
# 拉取远程更新(不合并)
git fetch github
# 拉取并合并到当前分支
git pull github master
# 查看某个文件改了什么
git diff src/app/config.py
# 查看已暂存的改动内容
git diff --cached
# 撤销暂存(从暂存区移出,改动不丢)
git restore --staged README.md
# 撤销工作区修改(⚠️ 改动会丢,未暂存的)
git restore README.md
# 查看某个 commit 改了什么
git show 5f83436
完整推送流程(从零到推完)
bash
# 1. 设身份(local,不动全局)
git config user.name "your-git-username"
git config user.email "your-email@example.com"
# 2. 更新 .gitignore,排除敏感/非代码文件
# (编辑 .gitignore 文件,加 .env / data/ / .claude/ 等)
# 3. 从索引移除已跟踪的排除项
git rm -r --cached .claude PROJECT.md docs
# 4. 恢复被忽略文件的跟踪(用 -f 强制)
git add -f docker-compose.local.yml
# 5. 暂存全部改动
git add -A
# 6. 提交
git commit -m "feat: 示例项目二阶段功能部署"
# 7. 添加 GitHub 远程仓库
git remote add github https://github.com/your-git-username/demo-project.git
# 8. 推送(首次会弹认证窗口)
git push -u github master
日常开发最常用 5 条
bash
git status # 我改了啥?
git add -A # 全暂存
git commit -m "说明" # 提交
git push # 推上去
git log --oneline -5 # 最近推了啥?