git-命令速查清单
Git 命令速查清单你动手时把下面所有占位符换成自己的真实值即可示例项目→ 你自己的项目名your-git-username→ 你的 GitHub / Gitee 用户名your-emailexample.com→ 你的提交邮箱demo-project→ 你的仓库名1. 查看状态# 查看当前工作区状态分支、哪些文件改了gitstatus-sb# 只看文件名脚本用简洁格式gitstatus--porcelain# 查看最近 3 条提交记录gitlog--oneline-3# 查看已暂存git add 过的文件列表gitdiff--cached--name-only# 只看暂存区里的新增(A)和修改(M)文件排除删除(D)的gitdiff--cached--name-status --diff-filterAM# 列出 git 正在跟踪的所有文件gitls-files# 查看远程仓库列表fetch 和 push 地址gitremote-v2. 配置提交者身份只改当前仓库不动全局# 设当前仓库的提交者名字--local不影响其它仓库gitconfig user.nameyour-git-username# 设当前仓库的提交者邮箱gitconfig user.emailyour-emailexample.com# 查看本仓库已设的身份gitconfig user.namegitconfig user.email# 查看全局身份不动它gitconfig--globaluser.namegitconfig--globaluser.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 索引移除文件磁盘文件保留# 把已跟踪的目录从 git 索引移除磁盘文件不动gitrm-r--cached.claude PROJECT.md docs# --cached 只从索引删不删磁盘文件# -r 递归目录里所有文件执行后这些文件状态变成Ddeleted from index提交后它们就彻底从仓库消失了。5. 暂存git add# 暂存所有改动新增、修改、删除一起加gitadd-A# 只暂存某个文件gitaddREADME.md# 强制暂存被 .gitignore 忽略的文件gitadd-fdocker-compose.local.yml# 预览将要暂存什么不实际执行-n dry-rungitadd-A-n6. 提交git commit# 单行提交信息gitcommit-mfeat: 添加新功能# 多行提交信息标题 正文用多个 -mgitcommit-mfeat: 示例项目二阶段部署-m详细说明...# 多行提交信息heredoc 方式适合长文本gitcommit-m标题 正文第一行 正文第二行commit message 格式建议类型: 简述。常用类型feat(新功能)、fix(修bug)、refactor(重构)、docs(文档)、chore(杂项)。7. 远程仓库git remote# 添加一个远程仓库代号叫 github指向 GitHub 地址gitremoteaddgithub https://github.com/your-git-username/demo-project.git# 添加另一个远程仓库代号叫 origin指向另一个代码平台如 Gitee# 这个之前已经配好了不用重复gitremoteaddorigin https://gitee.com/your-git-username/demo-project.git# 查看所有远程仓库gitremote-v# 删除远程仓库gitremote remove github# 修改远程仓库地址gitremote set-url github https://新地址.git一个本地仓库可以有多个 remote。origin和github只是代号互不干扰各推各的。8. 推送git push# 推送到 github 这个 remote 的 master 分支# -u 设置上游跟踪以后直接 git push 就行gitpush-ugithub master# 以后每次推已设过 -ugitpush# 同时推到所有 remotegitpush origin mastergitpush github master# 强制推送⚠️ 覆盖远程历史慎用gitpush-fgithub master首次 push 到 GitHub 时会弹出认证窗口登录你的 GitHub 账号即可。之后会缓存凭据不用每次登录。9. 其他常用命令# 拉取远程更新不合并gitfetch github# 拉取并合并到当前分支gitpull github master# 查看某个文件改了什么gitdiffsrc/app/config.py# 查看已暂存的改动内容gitdiff--cached# 撤销暂存从暂存区移出改动不丢gitrestore--stagedREADME.md# 撤销工作区修改⚠️ 改动会丢未暂存的gitrestore README.md# 查看某个 commit 改了什么gitshow 5f83436完整推送流程从零到推完# 1. 设身份local不动全局gitconfig user.nameyour-git-usernamegitconfig user.emailyour-emailexample.com# 2. 更新 .gitignore排除敏感/非代码文件# 编辑 .gitignore 文件加 .env / data/ / .claude/ 等# 3. 从索引移除已跟踪的排除项gitrm-r--cached.claude PROJECT.md docs# 4. 恢复被忽略文件的跟踪用 -f 强制gitadd-fdocker-compose.local.yml# 5. 暂存全部改动gitadd-A# 6. 提交gitcommit-mfeat: 示例项目二阶段功能部署# 7. 添加 GitHub 远程仓库gitremoteaddgithub https://github.com/your-git-username/demo-project.git# 8. 推送首次会弹认证窗口gitpush-ugithub master日常开发最常用 5 条gitstatus# 我改了啥gitadd-A# 全暂存gitcommit-m说明# 提交gitpush# 推上去gitlog--oneline-5# 最近推了啥