Web-Dev-For-Beginners 配套 Git 基础指南:分布式版本控制原理与常用命令速查实战
Web-Dev-For-Beginners 配套 Git 基础指南分布式版本控制原理与常用命令速查实战【免费下载链接】Web-Dev-For-Beginners24 Lessons, 12 Weeks, Get Started as a Web Developer项目地址: https://gitcode.com/GitHub_Trending/we/Web-Dev-For-Beginners本文以 Web-Dev-For-Beginners 仓库中的 Git-Basics/README.md丹麦语译本位于 translations/da/Git-Basics/README.md为核心骨架系统讲解 Git 分布式版本控制的核心概念、Git 与 GitHub 的区别、多平台安装与首次配置流程并给出覆盖项目创建、快照提交、分支合并、远程共享、历史检查五大场景的完整命令速查表。读者学完后将能在本课程以及任何个人项目中独立完成「初始化仓库 → 暂存 → 提交 → 推送 → 分支协作」的完整版本控制工作流。Git 是什么面向 Web 开发新手的分布式版本控制系统根据 Git-Basics/README.md 的定义Git 可以从三个层面理解Git 是一个分布式版本控制系统Distributed Version Control System。与集中式系统不同整个代码库及其完整历史都保存在每一位开发者的本地计算机上因此创建分支branch与合并分支merge都变得非常容易。它是版本控制工具VCS, Version Control System用于跟踪计算机文件中的变更。正因为历史是全量、分布式的即使远程服务器暂时不可用本地依然可以继续提交、分支与合并后续再同步。Git 的核心能力可归纳为以下五点分布式版本控制每个克隆仓库都是完整的历史副本协调多位开发者协同工作多人并行修改同一代码库而不互相覆盖记录谁在何时做了什么修改每次变更都有作者与时间戳随时回退到之前的任意版本快照机制保证了可追溯、可回滚支持本地仓库与远程仓库本地提交、远程同步二者分工明确。在 Web-Dev-For-Beginners 课程体系中Git 是「Getting Started」阶段的必备技能。课程的第 2 课 Introduction to GitHub 会引导学习者完成从安装 Git、创建 GitHub 账号到第一次推送代码的完整旅程而本仓库根目录下的 Git-Basics/README.md 则提供了一份可随时查阅的浓缩版命令速查手册二者互为补充。Git 的核心工作概念快照、提交与暂存区Git-Basics/README.md 用一组精炼的要点概括了 Git 的工作模型跟踪代码历史Git 记录下项目从诞生到当前的每一次状态变化对文件拍摄「快照」snapshot每一次提交都是当前所有跟踪文件的一个完整快照由你决定何时拍摄快照这个动作被称为「提交」commit提交时机完全由开发者掌控可以随时访问任意一个历史快照即可以checkout到任意提交点查看当时的代码提交前可以先「暂存」文件暂存区staging area允许你精心挑选哪些改动进入下一次提交。这套「工作区working directory→ 暂存区staging area→ 本地仓库local repo→ 远程仓库remote repo」的四段式流转是理解所有 Git 命令的地图。与 1-getting-started-lessons/2-github-basics/README.md 中「git add → git commit → git push」的日常三步节奏完全对应git add把改动放进暂存区git commit生成快照git push把快照同步到远程。Git 与 GitHub 的区别软件与云服务初学者最常混淆的就是 Git 与 GitHub。原文用一张对比表厘清了二者边界GitGitHubGit 是一种软件GitHub 是一种云服务Git 安装在本机系统上GitHub 托管在网络上Git 是命令行工具GitHub 提供图形化用户界面Git 由 Linux 社区维护GitHub 由 Microsoft 维护专注于版本控制与代码共享专注于源代码的集中式托管Git 采用开源许可证GitHub 提供免费层与付费层Git 于 2005 年发布GitHub 于 2008 年发布补充说明Git 由 Linus Torvalds 于 2005 年创建最初用于 Linux 内核的版本管理因此与 Linux 生态关系密切而 GitHub 则是基于 Git 的托管平台在其之上提供了 Issues、Pull Request、Actions、Pages 等协作与自动化能力。可以这样理解——Git 是引擎GitHub 是车库引擎负责驱动版本控制车库负责停放、展示并让更多人一起维护这辆车。安装 GitLinux、macOS 与 WindowsGit-Basics/README.md 给出了各主流平台的安装方式。LinuxDebian/Ubuntu 系列使用apt$ sudo apt-get install gitFedora/RHEL 系列使用yum$ sudo yum install gitmacOS 与 WindowsmacOS 与 Windows 用户可以从 Git 官方网站git-scm.com的 Downloads 页面分别获取对应平台的安装包原文分别链接到 Mac 与 Windows 的下载页。Windows/macOS 图形化安装流程原文档记录了 Windows 安装向导的标准流程下载并运行安装程序依次确认安装路径、组件选择等默认选项连续点击Next下一步保持默认配置继续Next Next Next直到出现Install安装按钮点击Install等待安装完成随后进入安装完成界面。全程保持默认配置即可满足绝大多数开发场景包括自动配置 Git Bash、Git GUI 以及 PATH 环境变量。安装完成后可以通过以下命令验证git --version这一步在 1-getting-started-lessons/2-github-basics/README.md 中被作为课程前置检查项确认 Git 已就绪再继续后续学习。安装后的首次配置让 Git 认识你安装完成后需要告诉 Git 你的身份信息因为每一次提交都会附带作者信息。原文档给出的配置命令如下git config --global user.name YourName git config --global user.email YourEmail参数说明--global表示全局生效作用于当前用户的所有仓库若省略则仅对当前仓库生效user.name提交者显示名称建议使用你希望在代码历史中公开呈现的名字user.email提交者邮箱建议与你的 GitHub 账号邮箱一致这样提交才能正确关联到你的 GitHub 头像与主页。配套课程 1-getting-started-lessons/2-github-basics/README.md 还补充了验证命令git config --list该命令会列出当前生效的全部配置项便于你确认user.name与user.email是否已正确写入。原文档同时提示这些信息会附加到你的每一次提交上因此请选择你愿意公开分享的姓名与邮箱。Git 常用命令速查五大场景全覆盖Git-Basics/README.md 的主体是一份分类清晰的命令速查表。下面按原文的五类场景完整展开并为关键命令补充原理说明与配套课程中的实战细节。获取与创建项目Getting Creating Projects命令说明git init在当前目录初始化一个本地 Git 仓库git clone ssh://gitgithub.com/[username]/[repository-name].git创建远程仓库的本地副本git init会在当前文件夹内创建一个隐藏的.git目录把普通文件夹升级为可跟踪历史的仓库。课程 1-getting-started-lessons/2-github-basics/README.md 中创建第一个仓库的第一步就是git init。git clone除了 SSH 协议也支持 HTTPS 与 GitHub CLI 两种方式。以本仓库为例官方 README 推荐的克隆命令为git clone https://github.com/microsoft/Web-Dev-For-Beginners.git如果你只需要课程内容而不需要 50 语言翻译目录还可以使用 README 中提供的sparse checkout稀疏检出方式显著减小下载体积git clone --filterblob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git cd Web-Dev-For-Beginners git sparse-checkout set --no-cone /* !translations !translated_images克隆成功后进入项目目录即可开始工作cd [project-folder]下图展示了在 GitHub 仓库页面点击Code按钮后出现的克隆面板可以通过 HTTPS、SSH 或 GitHub CLI 三种方式获取仓库地址也可以选择 Download ZIP 直接下载压缩包截图来自本仓库配套课程 1-getting-started-lessons/2-github-basics/README.md。基础快照Basic Snapshotting命令说明git status查看当前仓库状态git add [file-name.txt]将指定文件加入暂存区git add -A将所有新增与修改的文件加入暂存区git commit -m [commit message]提交暂存区中的改动git rm -r [file-name.txt]删除一个文件或目录并从版本控制中移除git push推送到远程仓库git pull从远程仓库拉取最新改动这一组命令构成了日常开发的「心跳节奏」。课程中给出的标准循环是git add . git commit -m describe what you changed git pushgit status被课程称为「你最好的朋友」——当你对仓库状态感到困惑时它总能告诉你当前处于哪个分支、哪些文件被修改、哪些文件已暂存。例如当显示modified: file.txt时表示该文件有未暂存的改动。git add .中的.表示「当前目录下的全部改动」git add -A则额外包含已删除文件与新增文件二者都是全量暂存的常用写法。如果想更精细地控制可以只git add指定文件把相关改动组织成逻辑清晰的多次提交。git commit -m message会为暂存内容创建一个带唯一 ID 的快照。课程特别强调提交信息应具有描述性与其写updated stuff不如写Add contact form to homepage——这是写给你未来自己的信件。git pull负责把远程仓库的新提交合并到本地保证本地与远程同步。分支与合并Branching Merging命令说明git branch列出本地分支星号*标记当前所在分支git branch -a列出所有分支本地与远程git branch [branch name]创建新分支git branch -D [branch name]删除一个分支git push origin --delete [branch name]删除远程分支git checkout -b [branch name]创建新分支并切换过去git checkout -b [branch name] origin/[branch name]克隆一个远程分支并切换过去git branch -m [old branch name] [new branch name]重命名本地分支git checkout [branch name]切换到指定分支git checkout -切换到上一次所在的分支git checkout -- [file-name.txt]丢弃某个文件的工作区改动git merge [branch name]将指定分支合并进当前活动分支git merge [source branch] [target branch]将源分支合并进目标分支git stash将脏工作区的改动暂存起来git stash clear清空所有暂存的改动分支是 Git 分布式模型发挥威力的关键。课程 1-getting-started-lessons/2-github-basics/README.md 给出的协作建议是每个功能或修复使用独立分支让改动聚焦单一目标这样合并成功率更高也便于维护者审阅。配套课程的现代写法值得一并掌握git switch -c [branch-name]等价于git checkout -b一条命令创建并切换新分支git switch是切换分支的更现代、更安全的命令git checkout -- [file]用于丢弃未提交的改动若想丢弃已暂存的内容可先用git reset取消暂存git stash适合「做到一半想先切分支」的场景把半成品改动暂存起来切走干完别的事再回来恢复合并冲突conflict发生时Git 会在文件中标记冲突区域课程建议直接在编辑器如 VS Code中逐处核对保留更准确的内容后重新提交。共享与更新项目Sharing Updating Projects命令说明git push origin [branch name]将指定分支推送到远程仓库git push -u origin [branch name]推送改动到远程仓库并记住该分支的关联关系git push推送到远程仓库使用已记住的分支关联git push origin --delete [branch name]删除远程分支git pull将本地仓库更新到远程最新提交git pull origin [branch name]从远程仓库拉取指定分支的改动git remote add origin ssh://gitgithub.com/[username]/[repository-name].git添加一个远程仓库关联git remote set-url origin ssh://gitgithub.com/[username]/[repository-name].git将 origin 远程地址设置为 SSH 方式要点解读origin是远程仓库的默认别名可以理解为「给 GitHub 仓库存的手机号」。git remote add origin url完成本地与远程的首次「加好友」后续推送只需git push即可。-u即--set-upstream参数让 Git 记住「本地分支 ↔ 远程分支」的映射第一次推送后后续同分支的git push/git pull就无需再写全参数。课程中创建第一个仓库后的首次推送正是git push -u origin main。git remote set-url origin url常用于把远程地址从 HTTPS 切换到 SSH或者换仓库地址后重新绑定切换后即可免密推送。检查与比较Inspection Comparison命令说明git log查看提交历史git log --summary查看提交历史详细版含文件变更摘要git log --oneline查看提交历史紧凑版每条一行git diff [source branch] [target branch]合并前预览两个分支之间的差异git log系列是复盘项目的利器--oneline以「短哈希 提交信息」的紧凑格式展示历史适合快速浏览--summary则补充每个提交涉及的文件改动。git diff让你在合并merge之前先看清两个分支的差异做到「先预览、再合并」降低冲突风险。从速查表到实战在课程与开源协作中落地理解了命令之后关键是把它们串成真实工作流。结合 Git-Basics/README.md 与 1-getting-started-lessons/2-github-basics/README.md可以把上述命令组织为两条核心流程。流程一个人项目的日常循环git init # 初始化仓库仅首次 git status # 查看状态养成习惯 git add . # 暂存全部改动 git commit -m 写清楚改了什么 # 创建快照 git remote add origin url # 关联远程仓库仅首次 git push -u origin main # 首次推送记住关联 git push # 之后每次只需推送这条「add → commit → push」的循环就是课程所说的 coding heartbeat配合git log --oneline随时回看历史。流程二开源协作的标准路径当你要向他人项目如本课程仓库贡献代码时标准流程是Fork在 GitHub 上把目标仓库复制到自己的账号下Clonegit clone把 fork 后的仓库克隆到本地Create branchgit checkout -b [branch-name]创建功能分支Make changes commitgit add . git commit -m my changesSync with maingit switch main git pull再git switch [branch-name] git merge main把最新的 main 合入自己的分支提前解决冲突Pushgit push -u origin [branch-name]把分支推到 fork 的远程Open PR在 GitHub 上发起 Pull Request请求维护者审阅并合并Clean up合并成功后用git branch -d [branch-name]删除本地分支并在 GitHub 上删除远程分支。课程特别提醒任何提交都落在你当前「检出」checked out的分支上因此提交前用git status确认所在分支是良好习惯。PRPull Request这个名称看似反直觉——你其实是把改动「推」向项目但由于需要维护者审阅后再合并本质上是在「请求」一个变更决策因此称为 Pull Request。小结从 Git-Basics/README.md 这份浓缩手册出发本文完整覆盖了Git 作为分布式版本控制系统的定义与五大特性、快照/提交/暂存区的工作模型、Git 与 GitHub 的边界、三大平台安装与首次身份配置以及「获取创建、基础快照、分支合并、共享更新、检查比较」五类场景的完整命令速查表并结合 1-getting-started-lessons/2-github-basics/README.md 与根目录 README.md 补充了课程级的实战工作流含稀疏检出、现代git switch写法与开源协作全流程。建议把本文与英文源文档 Git-Basics/README.md 配合使用前者提供讲解与上下文后者作为随时查阅的命令字典。当你在 1-getting-started-lessons/2-github-basics/README.md 中完成第一个仓库、第一次提交、第一次 Pull Request 后这套命令便会成为你日常开发中无需思考的肌肉记忆。【免费下载链接】Web-Dev-For-Beginners24 Lessons, 12 Weeks, Get Started as a Web Developer项目地址: https://gitcode.com/GitHub_Trending/we/Web-Dev-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考