Git常用命令大全及使用指南

这里为你整理了一份非常全面的 Git 常用命令大全,从入门到进阶,涵盖了日常开发的绝大多数场景。命令都附有简洁的说明,方便你快速查阅和使用。

Git 命令分类速览

  1. 仓库初始化与配置
  2. 日常基本操作
  3. 分支管理
  4. 查看状态与历史
  5. 撤销与回退
  6. 远程仓库协作
  7. 标签管理
  8. 高级技巧

1. 仓库初始化与配置

命令 说明
git init 在当前目录初始化一个新的 Git 仓库
git clone <url> 克隆一个远程仓库到本地
git config --global user.name "你的名字" (重要) 设置全局用户名
git config --global user.email "你的邮箱" (重要) 设置全局邮箱地址
git config --list 查看当前所有 Git 配置

2. 日常基本操作

命令 说明
git status 查看工作区和暂存区的状态(非常常用)
git add <文件名> 将指定文件的修改添加到暂存区
git add .git add -A 将所有新增、修改、删除的文件变更都添加到暂存区
git commit -m "提交信息" 将暂存区的内容提交到本地仓库,并附上提交说明
git commit -am "提交信息" 相当于 git add . + git commit -m仅对已跟踪的文件有效
git diff 查看工作区暂存区的差异
git diff --staged 查看暂存区本地仓库最新版本的差异
git restore <文件名> (Git 2.23+) 撤销工作区的修改,恢复到暂存区或仓库的版本
git restore --staged <文件名> (Git 2.23+) 将文件从暂存区撤出,但保留工作区的修改

注意 :在老版本 Git 中,撤销修改常用 git checkout -- <文件名>git reset HEAD <文件名>,新版本推荐使用 git restore


3. 分支管理

命令 说明
git branch 查看所有本地分支(当前分支前有 * 号)
git branch -r 查看所有远程分支
git branch -a 查看所有本地和远程分支
git branch <分支名> 创建一个新分支
git checkout <分支名> 切换到指定分支
git switch <分支名> (Git 2.23+) 专门用于切换分支的命令,更语义化
git checkout -b <分支名> 创建并切换到新分支(经典组合技)
git switch -c <分支名> (Git 2.23+) 创建并切换到新分支
git merge <分支名> 将指定分支合并到当前分支
git branch -d <分支名> 删除一个已合并的分支
git branch -D <分支名> 强制删除一个分支(即使它未合并)

4. 查看状态与历史

命令 说明
git log 查看提交历史
git log --oneline 以简洁的单行模式查看历史
git log --graph 以图形化方式查看分支合并历史
git show <commit_id> 查看某一次提交的具体内容变更
git status 再次强调,查看当前工作区状态的首选命令

5. 撤销与回退

命令 说明 风险
git commit --amend 修改最新一次提交的提交信息或追加文件变更 仅限本地未推送的提交
git reset --soft <commit_id> 回退到某个版本,保留工作区和暂存区的内容
git reset --mixed <commit_id> (默认) 回退到某个版本,保留工作区,清空暂存区
git reset --hard <commit_id> (危险) 彻底回退到某个版本,工作区和暂存区都重置
git revert <commit_id> 创建一个新的提交来"撤销"某次提交的更改。推荐用于已推送的提交

黄金法则 :对已经推送到远程仓库的提交,尽量使用 git revert;对仅本地的提交,可以使用 git reset


6. 远程仓库协作

命令 说明
git remote -v 查看远程仓库地址(verbose)
git remote add <remote_name> <url> 添加一个新的远程仓库,通常默认名为 origin
git fetch <remote_name> 从远程仓库获取最新信息到本地,但不自动合并
git pull <remote_name> <分支名> 相当于 git fetch + git merge,拉取并合并到当前分支
git pull --rebase <remote_name> <分支名> 拉取并使用变基方式合并,可以使历史线更清晰
git push <remote_name> <分支名> 将本地分支推送到远程仓库
git push -u <remote_name> <分支名> (重要) 首次推送时,建立本地分支与远程分支的跟踪关系
git push 建立跟踪关系后,简化推送命令
git branch --set-upstream-to=<remote_name>/<分支名> 手动建立本地分支与远程分支的跟踪关系

7. 标签管理

命令 说明
git tag 查看所有标签
git tag <标签名> 在当前提交上创建一个轻量标签
git tag -a <标签名> -m "备注信息" 创建一个带备注的附注标签
git push <remote_name> <标签名> 推送一个标签到远程仓库
git push <remote_name> --tags 推送所有本地标签到远程仓库

8. 高级技巧

命令 说明
git stash 将当前工作区和暂存区的修改临时"储藏"起来
git stash pop 恢复最近一次储藏的内容,并删除储藏记录
git stash list 查看所有的储藏记录
git rebase <分支名> 将当前分支变基到目标分支(常用于整理提交历史)
.gitignore (不是命令) 创建一个文件,列出希望 Git 忽略的文件/文件夹模式

常用工作流示例

场景一:日常提交代码

bash 复制代码
git status                  # 1. 查看改了哪些文件
git add .                   # 2. 将所有变更加入暂存区
git commit -m "功能完成"    # 3. 提交到本地仓库
git pull origin main        # 4. 先拉取远程最新代码(解决潜在冲突)
git push origin main        # 5. 推送到远程仓库

场景二:创建新功能分支

bash 复制代码
git switch -c feature/xxx   # 1. 从当前分支创建并切换到功能分支
# ... 进行开发,多次 add & commit ...
git push -u origin feature/xxx # 2. 推送功能分支到远程
# 开发完成后,在代码托管平台(如GitHub)创建Pull Request合并

希望这份大全能帮助你更好地使用 Git!建议先熟练掌握基本操作,再逐步尝试高级功能。

相关推荐
淮北4942 小时前
vim学习进阶
学习·编辑器·vim
智者知已应修善业2 小时前
【proteus中lm339电压滞回比较器达到三角波转换成方波】2023-4-13
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
551只玄猫3 小时前
新编大学德语1第三版笔记 第5课Essen und Trinken
笔记·学习笔记·德语·外语·德语a1·自学德语·新编大学德语
sayang_shao3 小时前
ARM架构运行模式学习笔记
arm开发·学习·架构
不只会拍照的程序猿4 小时前
《嵌入式AI筑基笔记02:Python数据类型01,从C的“硬核”到Python的“包容”》
人工智能·笔记·python
happymaker06264 小时前
web前端学习日记——DAY04
前端·学习
solicitous6 小时前
遇到一个口头机遇
学习·生活
悠然大月季7 小时前
git 怎么导出提交历史,文件是乱码
git·git导出历史记录·git导出历史乱码
观书喜夜长8 小时前
大模型应用开发学习-基于 LangChain 框架实现的交互式问答脚本
python·学习
中屹指纹浏览器8 小时前
2026指纹浏览器性能瓶颈分析与优化技巧
经验分享·笔记