GitHub Training Kit《Git 速查手册》精讲:覆盖安装配置、分支、仓库同步与历史重写的完整命令行指南
文档教程【免费下载链接】training-kitOpen source courseware for Git and GitHub项目地址https://gitcode.com/gh_mirrors/tr/training-kit点击查看免费下载Git 是一个开源的分布式版本控制系统也是 GitHub 上一切协作活动的基础设施。本文以 GitHub Training Kit 仓库中的 Git 速查手册尼泊尔语版 为核心骨架对照其英文原版逐节展开并结合仓库内 git-guides 系列指南补充源码级细节。读完本文你将掌握从安装 Git、配置提交者身份到分支管理、仓库创建与克隆、本地与远程同步再到日志检查与历史重写的完整命令行操作链可直接对照命令上手实战。一、速查手册在仓库中的定位与结构在 training-kit 仓库中速查手册以「同一内容、多语言并行」的方式组织根目录下的 downloads/github-git-cheat-sheet.md 是英文主版而 downloads/ne/github-git-cheat-sheet.md 是尼泊尔语翻译版二者共享同一套 Front Matter 与内容结构。此外还有德语、法语、日语、简体中文等数十个语言的副本见 downloads 目录以及一份面向进阶用户的 Git 高级速查手册。速查手册的 Front Matter 说明了它的定位layout: cheat-sheet redirect_to: false title: GitHub Git Cheat Sheet byline: Git is the open source distributed version control system that facilitates GitHub activities on your laptop or desktop. This cheat sheet summarizes commonly used Git command line instructions for quick reference.也就是说这是一份高频 Git 命令行指令的快速参考主题覆盖六大板块安装Install、配置Configure tooling、分支Branches、创建仓库Create repositories、同步变更Synchronize changes、修改与重做提交Make changes / Redo commits并以术语表Glossary收尾。仓库同时用 Jekyll 将这些 Markdown 渲染成网页布局文件见 _layouts/cheat-sheet.html站点配置见 _config.yml并提供了 Rakefile 用于构建与链接校验。二、安装 Git 与 GitHub Desktop速查手册将「安装」放在最前面提供两条路径目标入口GitHub Desktop图形化客户端desktop.github.comGit全平台命令行git-scm.com仓库中的 安装指南 对这两条路径做了更细的拆解可以直接对照使用检查是否已安装在终端执行git version若输出版本号说明已安装若提示git是未知命令则需继续安装。通过 GitHub Desktop 安装安装 GitHub Desktop 的同时会顺带安装最新版 Git适合想要「GUI 命令行」双形态的用户。Windows使用 Git for Windows 安装器完成后在命令提示符或 Git Bash 中执行git version验证。macOS多数 macOS 自带 Git若没有可通过官方安装器或 Homebrewbrew install git安装。LinuxDebian/Ubuntu先sudo apt-get update再sudo apt-get install git-all。LinuxFedora执行sudo dnf install git-all。安装完成后即可进入速查手册的下一环节为 Git 配置你的身份信息。三、配置工具让每次提交带上你的名字速查手册「Configure tooling」一节给出了三条全局配置命令它们影响所有本地仓库的行为$ git config --global user.name [name]设置提交commit事务中附带的名字。$ git config --global user.email [email address]设置提交事务中附带的邮箱地址。$ git config --global color.ui auto启用命令行输出的自动着色让git status、git diff等命令的反馈更易读。这里的--global表示配置写入用户级配置文件通常是~/.gitconfig对所有本地仓库生效如果只想影响当前仓库去掉--global即可写入仓库内的.git/config。从源码结构看Git 内部在创建 commit 对象时会把user.name与user.email写入作者author与提交者committer元数据——正如 git-guides/git-commit.md 所强调的commit 除内容与消息外还包含作者、时间戳等大量元数据因此这两项配置是协作场景下的必要前置步骤。四、分支Git 协作的基石速查手册对分支的定位很明确分支是与 Git 协作的重要部分你创建的任何提交都会落在当前 checked out 的分支上想知道当前处于哪个分支用git status。$ git branch [branch-name]创建新分支。$ git switch -c [branch-name]切换到指定分支并同步更新工作目录。这是现代 Git 推荐的分支切换方式旧教程中常见的git checkout -b同样可用速查手册与 git-guides 系列中两种写法都有出现。$ git merge [branch]把指定分支的历史合并进当前分支。速查手册特别指出这一操作通常在 pull request 中进行但它是 Git 的重要底层能力。$ git branch -d [branch-name]删除指定分支-d只删除已合并的分支未合并内容会得到安全提示。从 git-guides/git-overview.md 的讲解可以进一步理解分支的价值分支是轻量、廉价的指针因此「多开分支」是被鼓励的做法分支按用途而非人来划分一个人可以同时持有多个分支多个开发者也可以协作在同一个分支上。典型的 GitHub 工作流是从main拉出特性分支 → 提交修改 → push 到远程 → 发起 pull request → 评审与集成测试 → 合并回main。五、创建仓库init、clone 与 .gitignore速查手册指出新仓库有两种诞生方式本地新建或克隆已有仓库。如果是在本地初始化的仓库之后需要 push 到 GitHub 才能与他人协作。$ git init把当前目录变成一个全新的 Git 仓库。git-guides/git-init.md 补充了背后的实现细节git init会创建一个名为.git的隐藏目录其中存放 Git 用来构建项目历史的所有对象与引用objects 与 refs——正是这个隐藏目录把「普通文件夹」和「Git 仓库」区分开来。它还有一个常见变体git init directory在指定路径建仓库和git init --bare创建只作远程用途的裸仓库。在git init之后将本地仓库与 GitHub 上新建的空仓库建立连接$ git remote add origin [url]这条命令为本地仓库指定远程仓库url指向 GitHub 上的仓库origin是远程地址的默认人类可读别名详见 git-guides/git-remote.md。随后按 git-guides/git-init.md 的推荐流程完成首次发布$ git add . # 暂存现有文件 $ git commit -m 初始提交 # 形成第一个快照 $ git push -u origin main # 推送并建立上下游跟踪关系与之相对如果仓库已经存在于远程$ git clone [url]克隆下载GitHub 上已存在的仓库连同全部文件、分支与提交一起拿到本地。git-guides/git-clone.md 强调这是分布式版本控制的核心优势克隆不是拿到单个文件而是拿到完整仓库因此后续可以自由地在特性分支上安全修改。它通常只在开始参与项目时执行一次。速查手册的准则是启动一个项目时用git init或git clone二者选其一不要同时使用。克隆场景下还可以组合实用选项git clone [url] --branch [branch] --single-branch # 只克隆指定分支 git clone --sparse [url] # 稀疏检出只填充根目录文件 git clone --recurse-submodules [url] # 克隆时同时初始化子模块关于 .gitignore 文件速查手册特别提醒有时候让某些文件不被 Git 跟踪是更好的选择这一般通过名为.gitignore的专用文件完成其中可以按行书写忽略规则文件名、目录、通配模式等模板可在 github/gitignore 项目获取。为什么要忽略文件git-guides/git-add.md 给出了两个典型风险一是git add -A等「全量暂存」操作可能会把不该提交的内容大型二进制文件、含密码或认证令牌的敏感文件一并带入历史二是这些文件一旦进入提交历史便很难真正清除。因此把依赖产物、密钥文件、IDE 配置等列入.gitignore是工程上的第一道防线。六、同步变更fetch、merge、push 与 pull将本地仓库与 GitHub 上的远程仓库保持同步是速查手册的独立板块。Git 中与远程通信的命令只有四个——push、clone、pull、fetch见 git-guides/git-remote.md不使用它们时所有工作都只发生在本地。$ git fetch从远程跟踪分支下载所有历史。它只更新本地的远程跟踪分支如origin/main不触碰你当前的工作分支。$ git merge把远程跟踪分支合并进当前本地分支。$ git push把本地分支的所有提交上传到 GitHub。$ git pull用远程对应分支的新提交更新当前本地工作分支。速查手册给出关键定义git pull是git fetch与git merge的组合。git-guides/git-pull.md 进一步解释了为什么要把 fetch 和 merge 拆开理解当本地有新提交、远程也有新提交时git pull可能直接触发合并冲突若先单独执行git fetch合并不会立即发生你可以从容地在本地解决冲突甚至在没有网络时也可以先取回数据。另外git pull --rebase可以在拉取时重写历史让本地提交排在远程新提交之后避免产生合并提交git pull --all则适用于 fork 等存在多个远程的场景。而git push侧见 git-guides/git-push.md需要记住默认只推送当前检出的分支。首次推送新分支时用git push -u origin [branch]建立本地分支与远程分支的持久跟踪关系此后直接git push即可。推送前先git pull是最佳实践可以在本地解决冲突、减少在 GitHub 上产生合并冲突的可能。七、浏览与检查变更log、diff、show、add、commit速查手册「Make changes」一节围绕「浏览并检查项目文件的演化」展开。$ git log列出当前分支的版本历史。$ git log --follow [file]列出某个文件含重命名历史的版本历史。速查手册特别注明该选项只对单个文件生效。$ git diff [first-branch]...[second-branch]显示两个分支之间的内容差异。三个点表示「从两个分支的最近公共祖先开始比较」。$ git show [commit]输出指定提交的元数据与内容变更是查看「某一次提交到底改了什么」的快捷方式。$ git add [file]为文件的版本化做快照准备即把文件放入暂存区staging area。$ git commit -m [descriptive message]把文件的快照永久记录进版本历史。关于git add与git commit这对组合git-guides/git-add.md 与 git-guides/git-commit.md 提供了更完整的用法git add path暂存指定文件或目录git add -A暂存全仓库不在.gitignore中的所有变更git add -p可交互式地按 hunk 分段暂存即使改动在同一文件内也能拆成多个逻辑提交。git commit分为两阶段先git add指定要纳入提交的文件再git commit完成快照。不带-m时会打开默认编辑器撰写提交消息。git commit -am message可跳过暂存阶段仅对已被 Git 跟踪的文件生效git commit --amend用于改写最近一次提交。提交消息建议使用现在时、祈使语气例如 create file structure、translate cheat sheet into German 这类简短描述。八、重做提交reset 的两种形态与历史重写的风险速查手册「Redo commits」一节的开场白是消除错误并精心打造替代历史。$ git reset [commit]撤销[commit]之后的所有提交同时把改动保留在本地默认 mixed 模式改动回到工作区。这实际上是取消暂存unstage的标准手段——git-guides/git-add.md 提到git reset HEAD即git reset --mixed HEAD可以把已暂存的改动移出暂存区而不影响已提交历史。$ git reset --hard [commit]丢弃所有历史与改动直接回到指定提交。--hard会同时移动 HEAD 指针与分支指针介于期间的提交仿佛从未发生过未提交的工作也会一并丢失。速查手册随后用一段醒目警告CAUTION强调了历史重写的副作用警告更改历史可能带来严重的副作用。如果你需要改动已存在于 GitHub远程上的提交务必谨慎。遇到问题可前往 github.community 求助或联系支持团队。git-guides/git-commit.md 从协作角度补充了原因提交是不可变的 SHA 对象改写历史本质上是在创建新的替代提交。如果其他协作者仍基于旧提交继续工作你的强制推送force push可能与他们的历史分叉甚至让被删除的敏感内容密码、令牌、大文件在他人推送时「复活」。因此修改远程已存在的提交风险极高应尽量避免只改本地历史相对安全当需要「撤销」一个提交但不想破坏历史完整性时优先使用git revert生成一个反向提交git reset仅适用于确实需要删除的历史若已用git reset误删提交可通过git reflogHEAD 曾指向过的所有位置的日志找回。九、术语表构建 Git 心智模型速查手册以九条术语收尾它们是理解全部命令的地基术语含义Git开源的分布式版本控制系统GitHub托管并协作 Git 仓库的平台commit仓库全部变更的快照一个被压缩进 SHA 的 Git 对象branch指向某个提交的轻量可移动指针clone仓库的本地版本包含全部提交与分支remote团队成员交换变更所共用的 GitHub 公共仓库fork他人 GitHub 仓库的副本归你所有pull request比较并讨论分支差异的地方可附带评审、评论、集成测试等HEAD指向当前工作目录状态用git switch可将 HEAD 移动到不同分支、标签或提交其中「commit 是压缩进 SHA 的仓库快照」这一描述与 git-guides/git-overview.md 的说明相互印证Git 用 SHA 哈希以文本压缩方式存储变更因此对纯文本项目的版本控制效率很高而对图片、视频等二进制文件则不那么友好——这又回到了.gitignore的价值。理解了 commit、branch、HEAD 三者的关系提交构成历史、分支是提交的指针、HEAD 标记当前所在分支速查手册中的全部命令就串成了一条完整的思维链路。十、下一步在 training-kit 中继续深入速查手册的定位是「快速参考」而 training-kit 仓库为每条核心命令都准备了深度指南形成「速查手册快速上手 专题指南深入理解」的学习组合理解整体工作流git-guides/git-overview.md安装与验证git-guides/install-git.md仓库初始化与克隆git-guides/git-init.md、git-guides/git-clone.md暂存与提交git-guides/git-add.md、git-guides/git-commit.md远程同步git-guides/git-remote.md、git-guides/git-pull.md、git-guides/git-push.md状态检查git-guides/git-status.md进阶技巧stash、restore、patch 等downloads/github-git-advanced-cheat-sheet.md若想本地预览整份速查手册渲染后的站点可按 README.md 的说明执行script/package打包再用python -m http.server等服务在浏览器中查看。仓库内容遵循 CC-BY-4.0 许可欢迎在此基础上继续传播与改进这些教学材料贡献方式见 CONTRIBUTING.md。赞分享文档教程【免费下载链接】training-kitOpen source courseware for Git and GitHub项目地址https://gitcode.com/gh_mirrors/tr/training-kit点击查看免费下载相关推荐GitHub Training Kit Bash 速查手册从安装配置到系统运维的完整命令指南GitHub Training Kit Bash 速查手册从安装配置到系统运维的完整命令指南 本篇技术指南以开源仓库 training kit 中的官方速查文文档教程19GB实现95%性能保留Qwen3-32B-AWQ如何开启大模型普惠时代19GB实现95%性能保留Qwen3 32B AWQ如何开启大模型普惠时代 导语 阿里巴巴通义千问团队推出的Qwen3 32B AWQ量化模型通过4位AWQ文档教程Git 命令详解从仓库初始化到历史重写的完整实战手册linux-commandGit 命令详解从仓库初始化到历史重写的完整实战手册linux command 本篇指南以 linux command 仓库收录的 command/git文档教程上一篇解锁BongoCat模型宝库从个人分享到商业应用的全场景指南下一篇wxParse智慧穿戴智能手表的富文本显示方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于SpringBoot3+Vue3的心理健康预约系统、心理测评系统、医生预约管理系统、心理圈子社交平台,毕业设计,课程设计

基于SpringBoot3+Vue3的心理健康预约系统、心理测评系统、医生预约管理系统、心理圈子社交平台,毕业设计,课程设计

✅博主简介:Java全栈开发工程师(bishecoder),精通Java开发、系统设计、项目实战。 ✅技术栈:SpringBoot、Vue、React、Node.js、Nest.js、uni-app等 ✅技术擅长:定制项目、修改代码、编写文档、技术指导等。…

2026/10/13 1:50:14 阅读更多 →
基于SpringBoot3+Vue3的健康体检预约系统、体检套餐管理系统、体检机构管理系统、体检客户预约平台、体检信息管理系统,毕业设计,课程设计

基于SpringBoot3+Vue3的健康体检预约系统、体检套餐管理系统、体检机构管理系统、体检客户预约平台、体检信息管理系统,毕业设计,课程设计

✅博主简介:Java全栈开发工程师(bishecoder),精通Java开发、系统设计、项目实战。 ✅技术栈:SpringBoot、Vue、React、Node.js、Nest.js、uni-app等 ✅技术擅长:定制项目、修改代码、编写文档、技术指导等。…

2026/10/13 1:50:14 阅读更多 →
基于SpringBoot3+Vue3的在线医院预约系统、医生预约管理系统、医院科室管理系统、患者预约平台、医疗信息管理系统,毕业设计,课程设计

基于SpringBoot3+Vue3的在线医院预约系统、医生预约管理系统、医院科室管理系统、患者预约平台、医疗信息管理系统,毕业设计,课程设计

✅博主简介:Java全栈开发工程师(bishecoder),精通Java开发、系统设计、项目实战。 ✅技术栈:SpringBoot、Vue、React、Node.js、Nest.js、uni-app等 ✅技术擅长:定制项目、修改代码、编写文档、技术指导等。…

2026/10/13 1:50:14 阅读更多 →

最新新闻

SpringBoot+Vue学生成绩分析与可视化平台全解析

SpringBoot+Vue学生成绩分析与可视化平台全解析

每年毕业季我都能在技术社区里看到大量和“成绩管理系统”相关的提问,这个题目属于那种“看起来老套、实则非常能打”的典型选题。特别是把Java、Vue、SpringBoot这三个词绑在一起的时候,它考查的已经不只是“会写增删改查”,而是完整的前后端…

2026/10/13 2:33:32 阅读更多 →
自制PS5辅助工具箱:游戏库管理、存储分析与网络监测实战

自制PS5辅助工具箱:游戏库管理、存储分析与网络监测实战

前一阵子,我遇到一个几乎所有主机玩家都会碰到的场景:周末想装一款新游戏,系统弹出提示说内置存储空间不足。那一刻我站在电视前反复权衡:哪款游戏已经通关了?哪款还有继续玩的价值?它究竟占了多少空间&…

2026/10/13 2:33:32 阅读更多 →
Java常用类核心解析:String、包装类与时间日期API的实践要点

Java常用类核心解析:String、包装类与时间日期API的实践要点

写这份笔记之前,我先说个背景。我的JavaSE学习笔记已经更到第四篇,前几篇分别梳理过环境搭建和基础语法、面向对象的核心思想、继承多态和接口这些抽象概念。到这期聊"常用类",性质突然就变了——不再是学概念,而是在学…

2026/10/13 2:33:32 阅读更多 →
Grafana配置文件grafana.ini全解:核心参数、修改与避坑指南

Grafana配置文件grafana.ini全解:核心参数、修改与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 2:33:32 阅读更多 →
gdal111编译版部署指南:环境变量配置与避坑实践

gdal111编译版部署指南:环境变量配置与避坑实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 2:33:32 阅读更多 →
Bootstrap 4多级下拉菜单实现:解决复杂导航层级难题

Bootstrap 4多级下拉菜单实现:解决复杂导航层级难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 2:32:31 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →