
文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载本篇是 90DaysOfDevOps 挑战中 Git 学习专题的第三讲对应仓库文档 2022/ja/Days/day37.md。在前两篇中我们先后掌握了版本控制的概念与基础工作流Day 35、Git 的安装与配置以及客户端-服务器与分布式版本控制的原理差异Day 36。本篇将聚焦日常开发中最高频的 Git 命令与使用场景从哪里获取帮助、关于 Git 的常见误解与真实短板、Git 生态全景以及一份覆盖基础操作、撤销变更、改写历史、分支、远端协作、配置、重置与推送的完整速查表让你能够直接在终端里查手册、看状态、做提交、改历史、协作推送。一、从哪里获取 Git 帮助再熟练的开发者也有记不住命令的时候。遇到这种情况按以下三个层次逐步求助搜索引擎Google 或任何搜索引擎往往是最先想到的求助入口输入命令名加问题即可获得大量讨论与示例。Git 官方文档git-scm.com/docs 提供了全部命令的权威参考与丰富的学习资源适合系统性查阅。终端内置帮助即使没有网络也可以直接在 shell 中阅读与官方文档一致的帮助内容。以git add为例运行git add --help会打开该命令的完整手册man page内容包括命令用途、语法、全部选项说明与使用场景如果只想快速回顾有哪些可用选项可以改用git add -h它输出的是一份精简的选项摘要非常适合日常快速查询提示--help与-h的区别在于信息量——前者打开完整手册页后者仅打印一屏简短的语法与选项列表。在离线环境或 CI 脚本中调试时-h是更轻量的选择。二、关于 Git 的常见误解Git 没有访问控制其实可以赋予一位负责人leader维护源代码的权限通过权限体系与审查流程实现受控的协作。Git 太重了Git 支持浅克隆shallow repository对于大型项目可以只拉取减少后的历史记录显著降低存储与传输开销。三、Git 的真实短板对二进制文件不友好Git 非常适合源码文本但对可执行文件、视频等二进制文件并不理想这类文件的历史差异难以被高效压缩与对比。上手不友好正因为需要花大量时间讲解命令与功能这本身就是它不够用户友好的一个信号。不过整体结论依然是Git 难学但一旦掌握就很好用。四、Git 生态几乎所有的现代开发工具都支持 Git可以从四个维度概览开发者工具Visual Studio Code 内置 Git 集成Sublime Text 及其它文本编辑器、IDE 也都有 Git 插件与集成。团队工具CI/CD 领域的 Jenkins、消息协作的 Slack、项目管理与问题跟踪的 Jira 都能与 Git 工作流打通。云厂商Microsoft Azure、Amazon AWS、Google Cloud Platform 等主流云厂商均提供 Git 支持。基于 Git 的服务GitHub、GitLab、BitBucket 等托管平台常被形容为代码的社交网络后续章节会进一步深入。五、Git 速查表常用命令一网打尽以下速查表整理自公开的 Git cheatsheet覆盖了从入门到进阶的常用命令。不必一次全部记住随着日常实践自然会掌握其中最基础的部分。下面按照命令类别逐一列出说明文字继承自原文档并补充了关键的取值范围与注意事项。Git 基础操作命令示例说明git initgit init directory在指定目录中创建一个空的 Git 仓库。git clonegit clone repo将位于repo的仓库克隆到本地机器。git configgit config user.name定义当前仓库所有提交使用的作者名可通过system、global、local标志设定配置作用域。git addgit add directory将directory中的所有变更暂存以用于下一次提交也可以添加files用git add .添加全部内容。git commit -mgit commit -m message提交已暂存的快照用message说明本次提交的内容。git statusgit status列出已暂存、未暂存和未跟踪的文件。git loggit log以默认格式显示全部提交历史该命令还支持许多附加选项。git diffgit diff显示索引index与工作目录之间未暂存的变更。撤销变更命令示例说明git revertgit revert commit创建一个撤销commit全部变更的新提交并应用到当前分支。git resetgit reset file将file移出暂存区但保持工作目录不变——即不覆盖任何更改地取消暂存。git cleangit clean -n显示将从工作目录移除的文件把-n换成-f才会真正执行清理。改写历史命令示例说明git commitgit commit --amend用暂存的变更与上一次提交合并替换掉最后一次提交若没有暂存任何内容则只用于编辑上一次提交的提交信息。git rebasegit rebase base将当前分支变基到base之上。base可以是提交 ID、分支名、标签或相对于 HEAD 的引用。git refloggit reflog显示本地仓库 HEAD 的变更日志加--relative-date标志显示日期信息加--all显示所有引用。分支管理命令示例说明git branchgit branch列出仓库中所有分支添加branch参数则创建名为branch的新分支。git checkoutgit checkout -b branch创建并切换到名为branch的新分支去掉-b标志则直接切换到已存在的分支。git mergegit merge branch将branch合并到当前分支。远端仓库命令示例说明git remote addgit remote add name url建立与远端仓库的新连接。添加后可在其它命令中用name作为url的快捷方式。git fetchgit fetch remote branch从远端仓库获取指定branch省略branch则获取所有远端引用。git pullgit pull remote获取指定远端当前分支的副本并立即合并到本地副本。git pushgit push remote branch将分支连同必要的提交与对象推送到remote若远端仓库中不存在同名分支则会创建它。Diff 对比命令示例说明git diff HEADgit diff HEAD显示工作目录与最后一次提交之间的差异。git diff --cachedgit diff --cached显示已暂存的变更与最后一次提交之间的差异。Config 配置命令示例说明git config --global user.name namegit config --global user.name name定义当前用户所有提交使用的作者名。git config --global user.email emailgit config --global user.email email定义当前用户所有提交使用的作者邮箱。git config --global alias alias-name git-commandgit config --global alias alias-name git-command为 Git 命令创建快捷别名。git config --system core.editor editorgit config --system core.editor editor为机器上所有用户设置命令使用的文本编辑器editor应为启动所需编辑器的命令。git config --global --editgit config --global --edit在文本编辑器中打开全局配置文件进行手动编辑。Rebase 变基命令示例说明git rebase -i basegit rebase -i base交互式地将当前分支变基到base上启动编辑器输入命令决定每个提交如何转移到新基线上。Pull 拉取命令示例说明git pull --rebase remotegit pull --rebase remote获取远端当前分支副本并将其变基到本地副本与默认的 merge 不同这里使用 rebase 来整合分支。Reset 重置命令示例说明git resetgit reset将暂存区重置为与最近一次提交一致但保持工作目录不变。git reset --hardgit reset --hard将暂存区和工作目录都重置为与最近一次提交一致并覆盖工作目录中的所有更改。git reset commitgit reset commit将当前分支顶端向后移动到commit暂存区随之重置但工作目录保持不变。git reset --hard commitgit reset --hard commit与上一条相同但同时重置暂存区与工作目录会删除未提交的更改以及commit之后的所有提交。Push 推送命令示例说明git push remote --forcegit push remote --force即使会导致非快进non-fast-forward合并也强制推送。除非你绝对确定自己在做什么否则不要使用--force。git push remote --allgit push remote --all将本地所有分支推送到指定远端。git push remote --tagsgit push remote --tags标签不会在推送分支或使用--all时自动推送--tags标志会把所有本地标签发送到远端仓库。六、仓库里的 Git 实践这些命令的真实用法这份速查表并不是孤立的罗列——在当前仓库中就能找到大量真实的使用证据值得对照研读配置命令的落地在 Day 36 安装与配置 Git 中git config --global user.name Michael Cade、git config --global core.editor code --wait与git config --global -e展示了速查表中 Config 配置命令的完整实践流程配置文件最终落在用户主目录的.gitconfig中。基础命令的演练Day 35 版本控制大图景 演示了git init→git add→git commit -m→git log→git status→git diff commit→git checkout commit→git switch -的完整时间旅行流程与速查表的基础操作一一对应。进阶命令的实战仓库根目录的 CONTRIBUTING.md 是 Git 协作命令的最佳范本——它使用git remote add upstream url关联上游、git checkout -b my-new-feature main创建特性分支、git commit --amend与git rebase -i --autosquash main改写并压缩提交、git pull --rebase upstream main变基式同步以及git push --force-with-lease origin my-new-feature安全地强制推送。这些恰好覆盖了速查表中 Rewriting History、Branches、Remote、Rebase、Pull 与 Push 的全部类别。暂存与 .gitignore 的衔接下一篇 Day 38 暂存与变更 会深入git add、git status -s、git rm oldcode.ps1删除文件、git rm --cached取消跟踪等操作其中通过.gitignore忽略日志与敏感文件的做法正是速查表中git clean、git reset file之外管理工作目录的常用补充手段。七、小结与下一步本篇围绕从哪里求助、有哪些误解与短板、生态是什么、命令怎么用四个问题完整覆盖了 Git 日常使用的高频命令。核心结论可以浓缩为三点求助有层次搜索引擎 → 官方文档 →git add --help/git add -h即使离线也能在终端解决。认知要客观Git 擅长源码文本而非二进制文件学习曲线陡峭但一旦掌握便得心应手浅克隆可缓解太重的顾虑。命令靠实践速查表不用死记对照 CONTRIBUTING.md 与 Day 35Day 38 的仓库实例反复操作基础命令自然内化。下一站我们将进入暂存区与变更管理的实操演练见 Day 38。赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐90DaysOfDevOps 第37天深入理解 Git 常用命令、误区与实战速查手册90DaysOfDevOps 第37天深入理解 Git 常用命令、误区与实战速查手册 本文是 90DaysOfDevOps 学习路线中 Git 主题的核心实战文档/教程90DaysOfDevOps 第 37 天实战Git 帮助系统、常见误区辨析与高频命令速查全解90DaysOfDevOps 第 37 天实战Git 帮助系统、常见误区辨析与高频命令速查全解 本文源自 90DaysOfDevOps 2022 年学习计划的文档/教程90DaysOfDevOps 第 35 天Git 版本控制全景图——从为什么到第一个 Commit90DaysOfDevOps 第 35 天Git 版本控制全景图——从为什么到第一个 Commit 在进入 Git 的具体命令之前先回答两个根本问题什么是文档/教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考