资讯动态

GitHub Training Kit《Git 速查手册》精讲:覆盖安装配置、分支、仓库同步与历史重写的完整命令行指南

发布时间:2026/10/13 1:50:14 来源:尧图企业网站定制
文档教程【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑