Git 命令汇总表(基于一次完整的 Git 实战经验整理,涵盖从安装配置到日常开发、问题排查的所有常用命令)

本文整理了一份全面的Git新手速查表,涵盖从安装配置到日常开发全流程。


主要内容包括:

1)安装配置(SSH设置、首次配置);

2)项目初始化与首次推送;

3)日常开发流程(状态查看、提交推送规范);

4)分支管理与合并;

5)撤销操作与历史恢复;

6)冲突处理技巧;

7)文件删除与历史清理;

8).gitignore配置;

9)常见错误解决方案。


特别强调了git status、git log、标准提交三连(add/commit/push)等核心命令,以及SSH替代HTTPS、自动设置上游分支等实用配置。


附有VSCode快捷键和命令别名建议,帮助开发者高效使用Git进行版本控制。


关联阅读推荐:


GitHub 错误上传了文件,怎么安全彻底的删除(总结经验教训)


本次操作涉及的 Git 命令汇总表

阶段 命令 作用说明 本次实际场景
配置 git config --global user.name "用户名" 设置全局用户名(提交时显示) 首次配置 Git 身份
git config --global user.email "邮箱" 设置全局邮箱 同上
git config --global push.autoSetupRemote true 首次推送时自动建立上下游关联 避免每次手动加 -u
ssh-keygen -t rsa -b 4096 -C "邮箱" 生成 SSH 密钥对 解决 HTTPS 连接不稳定问题
cat ~/.ssh/id_rsa.pub 查看公钥,添加到 GitHub 配置 SSH 免密推送
ssh -T git@github.com 测试 SSH 连接是否成功 验证 SSH 配置
初始化 git init 在当前目录初始化本地仓库 新建项目时使用
git branch -M main 将默认分支重命名为 main 与 GitHub 默认分支名对齐
git remote add origin <url> 添加远程仓库地址(SSH/HTTPS) 关联本地与远程
git remote -v 查看远程仓库地址 确认远程配置正确
提交 git status 查看工作区、暂存区状态 提交前/出问题时必看
git add . 添加所有修改到暂存区 批量提交
git commit -m "提交信息" 将暂存区内容提交到本地仓库 生成提交记录
git push -u origin main 首次推送并建立上下游追踪 将本地代码推送到远程
git push 推送当前分支到关联的远程分支 日常推送
文件删除/撤销 git rm --cached <文件> 从 Git 仓库删除,保留本地文件 想删远程、留本地
git rm <文件> 从 Git 仓库和本地同时删除 彻底删除文件(⚠️ 谨慎)
git reset HEAD <文件> 撤销暂存区的文件 git add 后的撤销
git checkout -- <文件> 用 Git 仓库恢复工作区文件 丢弃工作区修改
分支/合并/冲突 git pull origin main --allow-unrelated-histories 拉取远程代码,允许合并不相关历史 解决本地与远程分叉
git merge --abort 放弃当前合并,回到合并前状态 冲突复杂时"重启"
git checkout --theirs <文件> 合并冲突时,采用远程版本 冲突解决时选择保留哪一方
git add <文件> 标记冲突已解决 冲突解决后加入暂存区
git commit -m "..." 完成合并提交 冲突解决后的收尾
历史查看 git log --oneline -5 查看最近5条提交(简洁) 快速看提交历史
git log --oneline --all -- <文件> 查看指定文件的所有提交记录 检查文件是否在历史中存在
git ls-files 查看当前 Git 跟踪的文件列表 确认哪些文件在仓库中
彻底清理(未最终采用) git filter-repo --path <文件> --invert-paths 从历史中彻底删除指定文件 想彻底抹去敏感文件历史
git push --force --all 强制推送所有分支 配合历史重写使用(⚠️ 影响协作者)

本次核心问题与关键命令对应表

遇到的问题 关键诊断命令 最终解决命令
HTTPS 连接被重置 ssh -T git@github.com 改用 SSH:git remote set-url origin git@github.com:...
推送时无上游分支 git status git push -u origin main 或配置 push.autoSetupRemote
本地与远程历史分叉 git log --oneline --all git pull origin main --allow-unrelated-histories
合并冲突(modify/delete) git status git merge --abortgit rm --cached → 重新提交
本地文件误删 git log --oneline --all -- <文件> git checkout <commit-id> -- <文件>
提交历史中有敏感文件 git log --oneline --all -- <文件> 最终方案:删除远程仓库 + 重建 + 添加 .gitignore

总结

这次经历中,最常用的命令是:

  • git status ------ 任何时候不确定,第一个执行它

  • git log --oneline ------ 看清历史再操作

  • git add + git commit + git push ------ 标准提交三连

最有价值的两个配置

  • SSH 替代 HTTPS ------ 解决网络问题

  • push.autoSetupRemote true ------ 避免每次手动关联上游


如果你希望我把这张表也整理成一篇独立的小文档(比如"Git 新手速查表"),我可以继续帮你补充完整。


补充完整


好的,我把这份 Git 新手速查表 补充完整,按真实使用场景分类,涵盖从安装配置到日常开发、冲突处理、历史管理的所有常用命令,方便你和读者随时查阅。


Git 新手速查表(完整版)

基于一次完整的 Git 实战经验整理,涵盖从安装配置到日常开发、问题排查的所有常用命令。


一、安装与配置

1.1 Windows 安装 Git

步骤 推荐选项 说明
默认编辑器 Use Visual Studio Code 别选 Vim,新手会卡住
PATH 环境 Git from command line and also from 3rd-party software 让 Git 在 CMD/PowerShell/VS Code 终端都能用
HTTPS 后端 Use OpenSSL 跨平台一致,兼容性好
行尾转换 Checkout Windows-style, commit Unix-style 避免跨平台换行符冲突
终端模拟器 Use MinTTY 比 Windows 默认终端好用
Git Pull 行为 Default (fast-forward or merge) 新手最安全
凭据管理器 Git Credential Manager 记住账号密码,不用重复输入
文件系统缓存 勾选 提升 Git 性能
符号链接 不勾选 Windows 上支持不好,前端很少用

1.2 首次配置

bash 复制代码
# 设置用户名和邮箱(必须)
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱@example.com"

# 设置默认分支名为 main(可选,推荐)
git config --global init.defaultBranch main

# 自动设置上游分支(省去每次 -u 的麻烦)
git config --global push.autoSetupRemote true

# 查看所有配置
git config --global --list

1.3 SSH 配置(解决 HTTPS 连接问题)

bash 复制代码
# 生成 SSH 密钥(一路回车)
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"

# 查看公钥,复制后添加到 GitHub/GitLab
cat ~/.ssh/id_rsa.pub

# 测试 SSH 连接
ssh -T git@github.com   # GitHub
ssh -T git@gitlab.com   # GitLab
ssh -T git@gitee.com    # Gitee

# 将远程仓库地址从 HTTPS 改为 SSH
git remote set-url origin git@github.com:用户名/仓库名.git

二、新建项目与初始化

命令 说明
git init 在当前目录初始化 Git 仓库
git init 项目名 创建新目录并初始化
git clone <仓库地址> 克隆远程仓库到本地
git clone --depth 1 <仓库地址> 浅克隆(只拉最近一次提交,速度快)
git branch -M main 将当前分支重命名为 main
git remote add origin <仓库地址> 添加远程仓库
git remote -v 查看远程仓库地址
git remote remove origin 删除远程仓库关联
git remote set-url origin <新地址> 修改远程仓库地址

2.1 首次推送

bash 复制代码
# 初始化后首次推送
git add .
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:用户名/仓库名.git
git push -u origin main

三、日常开发流程

3.1 标准工作流(每天必用)

bash 复制代码
# 1. 开始工作前,拉取最新代码
git pull

# 2. 查看当前状态
git status

# 3. 查看具体修改内容
git diff                 # 查看未暂存的修改
git diff --staged        # 查看已暂存的修改

# 4. 添加文件到暂存区
git add 文件名           # 添加单个文件
git add .                # 添加所有修改
git add -A               # 添加所有(包括删除)

# 5. 提交到本地仓库
git commit -m "feat: 添加新功能"
git commit -m "fix: 修复bug" --amend   # 修改上一次提交

# 6. 推送到远程
git push

3.2 提交信息规范(推荐)

前缀 说明 示例
feat: 新功能 feat: 添加用户登录
fix: Bug 修复 fix: 修复登录超时问题
docs: 文档更新 docs: 更新 README
style: 代码格式 style: 统一缩进
refactor: 重构 refactor: 优化代码结构
test: 测试 test: 添加单元测试
chore: 构建/工具 chore: 更新依赖

四、分支管理

4.1 基本分支操作

命令 说明
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看所有分支(本地+远程)
git branch <分支名> 创建新分支
git checkout <分支名> 切换分支
git checkout -b <分支名> 创建并切换分支
git branch -d <分支名> 删除分支(已合并)
git branch -D <分支名> 强制删除分支(未合并)
git push origin --delete <分支名> 删除远程分支

4.2 合并分支

bash 复制代码
# 切换到目标分支(如 main)
git checkout main

# 合并其他分支
git merge feature/login

# 推送到远程
git push

五、撤销与恢复

5.1 工作区撤销(未暂存)

命令 说明
git restore <文件> 丢弃工作区的修改(恢复到最后一次提交的状态)
git checkout -- <文件> 同上(老语法)
git restore . 丢弃所有工作区修改(⚠️ 不可恢复)

5.2 暂存区撤销(已 add,未 commit)

命令 说明
git restore --staged <文件> 将文件从暂存区移出(保留工作区修改)
git reset HEAD <文件> 同上(老语法)
git restore --staged . 移出所有暂存文件

5.3 提交撤销(已 commit,未 push)

命令 说明
git commit --amend 修改最后一次提交(信息或内容)
git reset --soft HEAD~1 撤销提交,保留修改在暂存区
git reset --mixed HEAD~1 撤销提交,保留修改在工作区(默认)
git reset --hard HEAD~1 撤销提交,丢弃所有修改(⚠️ 谨慎)

5.4 已推送的撤销

bash 复制代码
# 方法1:撤销后强制推送(⚠️ 影响协作者)
git reset --hard HEAD~1
git push --force-with-lease

# 方法2:使用 revert(安全,保留历史)
git revert HEAD
git push

六、查看历史与状态

命令 说明
git status 查看当前状态(最常用)
git log 查看完整提交历史
git log --oneline 一行显示一条提交
git log --oneline -5 查看最近5条
git log --oneline --graph 图形化显示分支历史
git log --oneline --all 查看所有分支历史
git log --oneline --all -- <文件> 查看指定文件的所有提交
git ls-files 查看 Git 跟踪的文件列表
git diff 查看未暂存的修改
git diff --staged 查看已暂存的修改
git diff <分支1> <分支2> 比较两个分支的差异

七、远程仓库同步

命令 说明
git pull 拉取远程更新并合并(默认)
git pull --rebase 拉取并变基(历史更干净)
git fetch 只拉取,不合并
git push 推送到远程
git push -u origin main 首次推送并建立上下游关联
git push --force-with-lease 安全强制推送(比 --force 更安全)
git remote update 更新所有远程引用

八、冲突处理

8.1 冲突发生时

bash 复制代码
# 1. 查看冲突文件
git status

# 2. 手动编辑冲突文件,保留需要的内容
# 冲突标记格式:
# <<<<<<< HEAD
# 你的修改
# =======
# 远程的修改
# >>>>>>> branch-name

# 3. 标记已解决
git add <冲突文件>

# 4. 完成合并
git commit -m "merge: 解决冲突"

# 或者放弃合并(重新来)
git merge --abort

8.2 冲突解决快捷键(VS Code)

操作 说明
Accept Current Change 保留本地版本
Accept Incoming Change 保留远程版本
Accept Both Changes 两者都保留
Compare Changes 对比差异

九、删除文件与清理

9.1 删除文件(不同场景)

命令 本地文件 Git 仓库 远程仓库 适用场景
rm <文件> ❌ 删除 ✅ 保留 ✅ 保留 只删本地,不提交
git rm <文件> ❌ 删除 ❌ 删除 ❌ 删除(推送后) 彻底删除
git rm --cached <文件> ✅ 保留 ❌ 删除 ❌ 删除(推送后) 删除远程,保留本地

9.2 清理历史中的敏感文件

bash 复制代码
# 方法1:删除重建(简单项目推荐)
rm -rf .git
git init
git add .
git commit -m "first commit"
# 删除远程仓库后新建,再推送

# 方法2:使用 filter-repo(彻底重写历史)
pip install git-filter-repo
git filter-repo --path <文件> --invert-paths --force
git push origin --force --all

十、.gitignore 配置

10.1 常用忽略规则

gitignore

bash 复制代码
# 依赖
node_modules/
.pnpm-store/

# 构建产物
dist/
build/
.out/
.next/

# 环境变量
.env
.env.local
.env.production

# IDE
.vscode/
.idea/
*.swp

# 系统文件
.DS_Store
Thumbs.db

# 日志
*.log
npm-debug.log*

# 敏感文件(自定义)
mumu/
*.key
*.pem

10.2 忽略规则优先级

gitignore

bash 复制代码
# 1. 忽略所有 .log 文件
*.log

# 2. 但不忽略 important.log(取反)
!important.log

# 3. 只忽略根目录下的 dist
/dist/

# 4. 忽略所有层级的 dist
dist/

十一、常见错误与解决方案速查

错误信息 原因 解决方案
fatal: unable to access ... HTTPS 连接问题 改用 SSH 或配置代理
Updates were rejected 本地落后于远程 git pull 后再 push
CONFLICT (modify/delete) 文件状态冲突 git merge --abort 后重新处理
The current branch has no upstream branch 首次推送未设上游 git push -u origin main 或配置 push.autoSetupRemote
refusing to merge unrelated histories 本地与远程无共同祖先 git pull --allow-unrelated-histories
pathspec did not match any file 文件不存在于 Git 中 确认文件名或先 git add
Your branch and 'origin/main' have diverged 本地与远程分叉 git pull --rebase 或合并后推送

十二、快捷键与别名

12.1 常用 Git 别名(推荐配置)

bash 复制代码
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --oneline --graph --all"
git config --global alias.unstage "reset HEAD --"
git config --global alias.last "log -1 HEAD"

# 使用
git st          # 代替 git status
git lg          # 查看图形化历史
git unstage 文件 # 从暂存区移出

12.2 VS Code Git 快捷键

操作 快捷键
打开源代码管理 Ctrl + Shift + G
提交暂存的更改 Ctrl + Enter
打开终端 ```Ctrl + `````
打开命令面板 Ctrl + Shift + P(输入 Git: 查看所有命令)

总结:本次实战核心命令回顾

阶段 核心命令
配置 git config --global user.name/emailssh-keygenssh -T git@github.com
初始化 git initgit remote addgit push -u origin main
日常 git statusgit add .git commit -mgit push
分支 git checkout -bgit mergegit branch -d
撤销 git restoregit resetgit commit --amend
冲突 git statusgit merge --abort,手动解决后 git add
查看 git log --oneline --allgit diffgit ls-files
清理 git rm --cached,添加 .gitignore,必要时删除重建
相关推荐
q5431470873 小时前
Redis Desktop Manager(Redis可视化工具)安装及使用详细教程
redis·git·bootstrap
素雨迁喜4 小时前
Linux平台下git工具的使用
linux·运维·git
Irene19916 小时前
Windows环境,VS Code 中 Git 配置指南
git·基础配置
Yang-Never7 小时前
AI Code -> Windows电脑安装Claude
开发语言·windows·git
Irene19917 小时前
2026 前端开发 Windows 安装 Git 配置指南(有实际安装过程参考:适配版本 the latest 2.53.0(2) x64 )
前端·windows·git
早起的年轻人7 小时前
告别Git仓库臃肿:一招解决Maven target目录误提交问题
java·git·maven
悠然大月季1 天前
git 怎么导出提交历史,文件是乱码
git·git导出历史记录·git导出历史乱码
chenshiming8021 天前
在cursor下执行GIT回退版本
git
打点计时器1 天前
Git快速上手教程
git