【Git】Git 系统性使用指南(内含《核心Git命令速查表》)

简介: 这是一份全面、实用的Git系统性指南,涵盖基础配置、日常操作、分支管理、远程协作、撤销回退、标签与高级命令(如rebase、cherry-pick、bisect等),附带速查表、规范建议和最佳实践,适合开发者日常参考、团队协作及面试复习。

Git 系统性使用指南

Git 是分布式版本控制系统,用于高效管理项目代码。本文从基础到高级,全方位总结 Git 核心概念、命令与最佳实践。

《Git 命令速查表》

核心说明

此表格为Git全场景常用命令速查,覆盖基础配置、日常操作、分支管理、远程协作、撤销回退、高级操作全维度,适配Git新版规范,兼顾旧版兼容命令,可直接用于日常开发、面试复习、团队规范参考。


分类 核心命令 功能说明 常用示例代码
基础配置与仓库初始化 git config 配置Git全局/局部用户信息、编辑器、别名等核心参数 git config --global user.name "你的名称"
git config --global user.email "你的邮箱"
git config --list(查看所有配置)
git init 初始化一个全新的本地Git仓库 git init 项目名称(新建文件夹并初始化)
git init(当前目录直接初始化)
git clone 克隆远程仓库到本地,自动关联远程源 git clone https://github.com/用户名/仓库名.git
git clone -b 分支名 仓库地址(克隆指定分支)
日常核心操作 git status 查看工作区、暂存区的文件状态(新增/修改/删除/未跟踪) git status
git status -s(精简一行输出)
git add 将工作区的修改/新增文件添加到暂存区 git add 文件名(添加单个文件)
git add .(添加当前目录所有变更)
git add 目录名/(添加指定目录)
git commit 将暂存区的内容提交到本地版本库,生成永久提交记录 git commit -m "提交说明"
git commit -am "提交说明"(跳过add,直接提交已跟踪文件)
git commit --amend(修改最近一次提交信息)
git diff 查看不同区域间的代码差异 git diff(工作区 vs 暂存区)
git diff --staged(暂存区 vs 版本库,同--cached)
git diff HEAD(工作区 vs 最新版本)
git log 查看分支提交历史记录 git log
git log --oneline(一行精简展示)
git log --graph --all --oneline(图形化展示全部分支历史)
分支管理 git branch 分支的创建、查看、删除、重命名 git branch(查看本地分支)
git branch -a(查看本地+远程全部分支)
git branch 新分支名(创建分支)
git branch -d 分支名(删除已合并分支)
git branch -D 分支名(强制删除未合并分支)
git checkout / git switch 切换分支,或创建并切换分支(switch为Git 2.23+新版推荐命令) git checkout 分支名 / git switch 分支名(切换分支)
git checkout -b 新分支名 / git switch -c 新分支名(创建并切换分支)
git merge 将目标分支的提交合并到当前分支 git merge 待合并分支名
git merge --no-ff 待合并分支名(禁用快进合并,保留合并记录)
远程仓库协作 git remote 管理本地仓库关联的远程仓库源 git remote -v(查看已关联的远程源)
git remote add origin 远程仓库地址(添加远程源,origin为默认别名)
git remote set-url origin 新地址(修改远程源地址)
git push 将本地分支的提交推送到远程仓库 git push origin 分支名
git push -u origin 分支名(首次推送并关联远程分支,后续可直接git push)
git push origin --delete 远程分支名(删除远程分支)
git pull 拉取远程分支的最新提交,并合并到当前本地分支(fetch + merge) git pull origin 分支名
git pull --rebase origin 分支名(拉取后用变基替代合并,保持提交线整洁)
git fetch 抓取远程仓库的所有更新,但不自动合并到本地分支 git fetch origin
git fetch --all(抓取所有远程源的更新)
撤销与回退操作 git restore 撤销工作区/暂存区的修改(Git 2.23+ 新版推荐命令) git restore 文件名(撤销工作区修改,恢复到暂存区状态)
git restore --staged 文件名(撤销暂存区的add操作,保留工作区修改)
git reset 回退提交记录,可控制修改的保留范围,分为3种核心模式 git reset --soft HEAD~1(仅撤销提交,修改保留在暂存区)
git reset --mixed HEAD~1(默认模式,撤销提交+暂存区,修改保留在工作区)
git reset --hard HEAD~1(彻底回退,丢弃所有修改,高危慎用!)
git revert 反转指定提交,生成新的提交记录,不修改历史,安全用于公共分支 git revert HEAD(反转最近一次提交)
git revert 提交哈希值(反转指定历史提交)
git reflog 查看本地仓库所有HEAD操作记录,用于找回误删/误回退的提交 git reflog
git reset --hard HEAD@{序号}(恢复到指定操作节点)
git stash 临时暂存工作区未完成的修改,用于切换分支前保存现场 git stash push -m "暂存说明"
git stash list(查看所有暂存记录)
git stash apply stash@{0}(应用指定暂存,不删除)
git stash pop(应用最近一次暂存并删除)
git stash drop stash@{0}(删除指定暂存)
标签管理 git tag 版本标签创建、查看、删除,用于版本发布标记 git tag 标签名(创建轻量标签)
git tag -a 标签名 -m "标签说明"(创建附注标签,推荐用于版本发布)
git tag(查看所有标签)
git show 标签名(查看标签详情)
git tag -d 标签名(删除本地标签)
git push 标签相关 标签的远程推送与删除 git push origin 标签名(推送单个标签到远程)
git push origin --tags(推送所有本地标签到远程)
git push origin --delete 标签名(删除远程标签)
高级进阶操作 git cherry-pick 选择性将指定分支的单个/多个提交,合并到当前分支 git cherry-pick 提交哈希值
git cherry-pick 提交哈希1 提交哈希2(合并多个提交)
git rebase 变基操作,将当前分支的提交移到目标分支的最新提交之上,保持提交历史线性整洁 git rebase 目标分支名
git rebase -i HEAD~n(交互式变基,可合并/修改/删除历史提交)
git bisect 二分法查找引入Bug的提交,快速定位问题 git bisect start(启动查找)
git bisect bad(标记当前提交有Bug)
git bisect good 正常版本号/提交哈希(标记已知正常的版本)
git bisect reset(查找完成后退出)
git blame 逐行查看文件的修改历史,包括修改人、提交时间、提交哈希 git blame 文件名
git submodule 子模块管理,在主仓库中嵌套管理其他Git仓库 git submodule add 子模块仓库地址 存放路径(添加子模块)
git clone --recursive 主仓库地址(克隆含子模块的仓库)
git submodule update --init --recursive(更新并初始化所有子模块)

补充使用规范

  1. 命令中 HEAD~1 代表最近1次提交,可替换为 HEAD~n 代表最近n次提交,也可直接替换为指定的提交哈希值
  2. 所有带 --global 的配置为全局生效,不加则仅对当前仓库生效
  3. git rebase 禁止在多人协作的公共分支上使用,仅可用于个人本地分支
  4. git reset --hard 为高危操作,执行前请确认已备份重要修改
  5. 提交信息推荐遵循 Conventional Commits 规范,格式为 type: 描述(如 fix: 修复登录接口超时feat: 新增用户管理模块

一、Git 基础

1. 安装与配置

# 安装(以 Ubuntu 为例)
sudo apt install git

# 配置用户信息(全局)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 查看配置
git config --list

2. 初始化仓库

# 新建仓库
git init my-project
cd my-project

# 或克隆现有仓库
git clone https://github.com/username/repository.git

3. 核心概念:工作区、暂存区、版本库

  • 工作区:本地文件目录
  • 暂存区:临时保存待提交的修改(git add 后)
  • 版本库:Git 仓库的核心(.git 目录)

4. 基础操作

(1)查看状态

git status

(2)添加文件到暂存区

# 添加单个文件
git add file.txt

# 添加所有文件
git add .

# 添加指定目录
git add src/

(3)提交到版本库

# 提交暂存区文件
git commit -m "提交说明"

# 跳过暂存区,直接提交工作区已跟踪的文件
git commit -am "提交说明"

(4)查看差异

# 工作区 vs 暂存区
git diff

# 暂存区 vs 版本库
git diff --staged  # 或 git diff --cached

# 工作区 vs 版本库
git diff HEAD

(5)查看提交日志

# 查看完整日志
git log

# 简洁日志(一行显示)
git log --oneline

# 图形化显示分支历史
git log --graph --all --oneline

二、分支管理

1. 分支基础操作

(1)创建分支

git branch dev  # 创建名为 dev 的分支

(2)切换分支

git checkout dev  # 切换到 dev 分支
# 或使用新版命令
git switch dev

(3)创建并切换分支

git checkout -b dev  # 创建 dev 并切换
# 或
git switch -c dev

(4)查看分支

git branch  # 查看本地分支
git branch -a  # 查看所有分支(本地+远程)

2. 合并分支

(1)普通合并

# 切换到目标分支(如 master)
git checkout master

# 合并 dev 分支到 master
git merge dev

(2)解决合并冲突

当合并冲突时,Git 会标记冲突文件。手动编辑文件后:

git add conflict-file.txt  # 标记冲突已解决
git commit -m "解决合并冲突"

3. 删除分支

# 删除已合并的分支
git branch -d dev

# 强制删除未合并的分支
git branch -D dev

三、远程仓库操作

1. 关联远程仓库

# 查看远程仓库
git remote -v

# 添加远程仓库(origin 为默认名称)
git remote add origin https://github.com/username/repo.git

# 修改远程仓库 URL
git remote set-url origin https://github.com/username/new-repo.git

2. 推送与拉取

(1)推送本地分支到远程

git push origin master  # 推送 master 分支
git push -u origin master  # 首次推送并关联(后续可直接 git push)

(2)拉取远程更新

# 抓取远程更新但不合并
git fetch origin

# 拉取并合并(fetch + merge)
git pull origin master

3. 远程分支管理

# 查看远程分支
git branch -r

# 删除远程分支
git push origin --delete dev

四、撤销与回退

1. 撤销工作区修改

git checkout -- file.txt  # 丢弃工作区修改(恢复到暂存区状态)
# 或新版命令
git restore file.txt

2. 撤销暂存区修改

git reset HEAD file.txt  # 从暂存区移除(保留工作区修改)
# 或新版命令
git restore --staged file.txt

3. 撤销提交(git reset)

git reset 有三种模式,通过 --soft/--mixed/--hard 区分:

模式 作用
--soft 仅撤销提交,修改保留在暂存区
--mixed 默认模式,撤销提交和暂存区,修改保留在工作区
--hard 彻底撤销,丢弃所有修改(慎用!)
# 示例:撤销最近 1 次提交
git reset --soft HEAD~1   # 保留修改在暂存区
git reset --mixed HEAD~1  # 保留修改在工作区(默认)
git reset --hard HEAD~1   # 彻底丢弃修改

4. 反转提交(git revert)

创建新提交来撤销历史提交(不修改历史,适合公共分支):

git revert HEAD  # 撤销最近一次提交
git revert commit-hash  # 撤销指定提交

5. 查看操作历史(git reflog)

记录所有 HEAD 移动(可用于恢复误删的提交):

git reflog  # 查看操作历史
git reset --hard HEAD@{
   n}  # 恢复到指定操作

五、标签管理

1. 创建标签

# 轻量标签(仅指向提交)
git tag v1.0

# 附注标签(包含标签信息)
git tag -a v1.0 -m "版本 1.0 发布"

2. 查看标签

git tag  # 查看所有标签
git show v1.0  # 查看标签详情

3. 推送标签到远程

git push origin v1.0  # 推送单个标签
git push origin --tags  # 推送所有标签

4. 删除标签

# 删除本地标签
git tag -d v1.0

# 删除远程标签
git push origin --delete v1.0

六、高级操作

1. 暂存工作区(git stash)

临时保存未完成的修改(用于切换分支前):

# 暂存工作区
git stash save "临时保存的修改"

# 查看暂存列表
git stash list

# 应用暂存(不删除)
git stash apply stash@{
   0}

# 应用并删除暂存
git stash pop

# 删除暂存
git stash drop stash@{
   0}

2. 选择性合并提交(git cherry-pick)

将某个分支的特定提交合并到当前分支:

git cherry-pick commit-hash

3. 变基(git rebase)

将当前分支的提交“移动”到目标分支的最新提交之上(使历史更清晰):

# 在 dev 分支上,将 dev 的提交基于 master 最新
git checkout dev
git rebase master

⚠️ 注意:不要对公共分支使用 rebase(会修改历史)!

4. 二分查找 Bug(git bisect)

通过二分法快速定位引入 Bug 的提交:

git bisect start  # 开始查找
git bisect bad    # 标记当前提交为有 Bug
git bisect good v1.0  # 标记 v1.0 为正常
# Git 自动切换到中间提交,测试后标记 good/bad,直到找到 Bug 提交
git bisect reset  # 退出查找

5. 查看文件修改历史(git blame)

逐行查看文件的修改者和时间:

git blame file.txt

6. 子模块(git submodule)

在一个 Git 仓库中嵌套另一个仓库:

# 添加子模块
git submodule add https://github.com/username/submodule.git path/to/submodule

# 克隆包含子模块的仓库
git clone --recursive https://github.com/username/repo.git

# 更新子模块
git submodule update --init --recursive

7. Git 别名配置

简化常用命令:

git config --global alias.co checkout  # git co = git checkout
git config --global alias.br branch    # git br = git branch
git config --global alias.ci commit    # git ci = git commit
git config --global alias.st status    # git st = git status

七、最佳实践

  1. 提交粒度:每次提交聚焦一个功能/修复,避免大而全的提交。
  2. 提交说明:使用清晰的描述(如 fix: 修复登录接口超时)。
  3. 分支策略:采用 Git Flow 或 GitHub Flow 等分支管理模型。
  4. 避免强制推送:除非是个人分支,否则不要使用 git push --force

八、更多资源

相关文章
|
6月前
|
Java 程序员 持续交付
Git 从入门到进阶:常用命令与高级用法全解析
本文系统梳理Git常用命令与高级技巧,涵盖初始化、分支管理、变基、储藏、标签、差异对比、二分查找及reflog等核心功能,结合最佳实践与避坑指南,助你从入门到精通,提升代码管理与团队协作效率。
729 74
|
2月前
|
测试技术 API 持续交付
【Git】实际项目中 Git 的最佳实践
本文系统总结Git在实际项目中的八大最佳实践:涵盖分支策略(Git Flow/TBD)、Conventional Commits提交规范、PR代码审查要点、核心分支保护、冲突预防与解决、敏感信息管理、高效命令技巧(stash/bisect/reflog)及团队协作规范,助力提升协作效率与代码质量。
|
2月前
|
安全 Ubuntu 开发工具
【Git】Git工具的正确使用指南(系统性总结)
本指南系统梳理Git核心概念(仓库、工作区、暂存区、提交、分支)与全流程操作,涵盖安装配置、本地开发、分支管理、远程协作(Fork+PR)、.gitignore配置及提交规范,强调安全操作与最佳实践,助开发者高效、规范使用Git。
|
1月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
35657 70
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
3月前
|
人工智能 自然语言处理 安全
2026年部署OpenClaw Skills实战记录:零基础用户从零打造远程服务器巡检技能
在AIOps领域飞速发展的今天,Agent Skills凭借轻量化、高定制性的优势,逐渐替代传统MCP方案,成为智能运维的核心工具。而OpenClaw作为开源AI助手的佼佼者,不仅支持多平台对接与本地部署,更提供了极简的Skills定制能力——无需复杂编码,通过自然语言交互即可生成专属功能模块。本文以企业高频需求的“远程Linux服务器巡检”为例,详细拆解OpenClaw Skills的开发全流程,涵盖需求定义、交互配置、文件解析、测试优化等核心环节,搭配可直接复用的代码模板与阿里云快速部署方案,确保零基础用户也能快速上手,全程不改变原意,不含无关平台信息。
1483 1
|
1月前
|
人工智能 监控 JavaScript
Claude Code 必装插件:claude-hud 让你的 AI 编程效率翻倍
![封面图](https://oscimg.oschina.net/oscnet/up45b3d45a4d73cfc21ab909d1632066be5b9.png) JeecgBoot AI专题研究 Claude Code 状态监控插件 claudehud 深度体验与实战指南 你真的了解 Cla
3413 1
Claude Code 必装插件:claude-hud 让你的 AI 编程效率翻倍
|
18天前
|
存储 监控 NoSQL
【Redis】Redis 高可用:主从复制、哨兵Sentinel、Redis Cluster分片原理、哈希槽、故障转移、数据倾斜优化
本文系统梳理Redis高可用演进路径(单机→主从→哨兵→Cluster),深入解析三大方案原理:主从复制的PSYNC增量同步机制、哨兵的双层下线判定与Raft选举、Cluster的哈希槽分片与Gossip通信。涵盖故障自愈、数据一致、水平扩展等核心目标,及脑裂防控、数据倾斜治理等生产级最佳实践。
|
24天前
|
消息中间件 存储 运维
【Kafka核心】Kafka 3.0+ KRaft模式(替代ZooKeeper)核心原理与优势
本文系统解析Kafka 3.0+ KRaft模式全知识体系,涵盖背景演进、核心架构、Raft原理、元数据管理、部署运维、最佳实践等九大维度,深度对比ZK模式,详解Controller/Broker角色分离、__cluster_metadata日志机制与毫秒级故障恢复优势,助你掌握Kafka下一代原生元数据管理核心技术。
|
2月前
|
SQL 机器学习/深度学习 存储
NL2SQL 目前有什么突破?
本文梳理NL2SQL十年演进:从Seq2SQL到大模型Prompt工程,总结Schema链接、结构预测、少样本提示与自我修正四大突破,单表准确率达85–90%;但多表JOIN仍卡在≤70%瓶颈。进而对比字节宽表方案与Palantir/UINO本体智能体路线,揭示下一代技术选型关键。
|
2月前
|
人工智能 Linux API
OpenClaw保姆级部署图文教程:阿里云/本地秒级上线+豆包Seed 2.0接入+百炼Coding Plan配置指南
步入2026年,OpenClaw(又名Clawdbot,圈内俗称“小龙虾”)已经成为最易上手、功能最强的开源AI智能体工具,彻底打破传统AI只能问答、无法实操的局限,支持本地文件管理、代码编写、自动化任务执行、长文本处理、多平台联动等核心能力,搭配豆包Seed 2.0的超强代码与逻辑推理能力,以及阿里云百炼Coding Plan免费大模型的低成本兜底方案,成为个人办公、轻量开发、自动化运维人群的首选工具。
2018 3

热门文章

最新文章