
first-contributions 在 Windows 上使用 Git Bash 完成首次开源贡献Fork → Clone → Commit → Push → PR 全流程实操【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions本文基于 first-contributions 仓库的孟加拉语版 Git Bash 教程git-bash-windows-tutorial-bn.md整理成文完整覆盖 Windows 平台下使用 Git Bash 命令行完成一次标准开源贡献的全部步骤Fork 仓库、克隆你的 Fork、创建分支、修改并 Commit Contributors.md、Push 到远程、发起 Pull Request。读完后你可以独立复现整条fork → clone → edit → PR流程并理解每一步命令背后的作用与仓库结构上的依据。教程定位为什么从改一行名字开始first-contributions 项目的目标是降低新手第一次参与开源的门槛。正如 README.md 所述该项目希望simplify and guide the way beginners make their first contribution简化并引导新手做出第一次贡献。对于命令行初学者仓库提供了 GUI 工具的替代教程见 docs/gui-tool-tutorials/github-desktop-tutorial.md而本文对应的 Git Bash 版本则面向愿意直接使用命令行的 Windows 用户。这个项目的核心练习目标非常明确在 Contributors.md 文件末尾添加自己的名字。这是一个单行列表格式的 Markdown 文件全文件接近 6000 行每行一条贡献者记录是典型的低风险、零冲突概率首贡献目标——这也解释了为什么教程选择它作为练习对象而不是改动任何有逻辑意义的文件。完成本篇教程你将掌握以下能力在 Windows 上用 Git Bash 打开终端并导航目录cd区分主仓库与自己的 Fork正确地从 Fork 克隆git clone创建并切换到贡献分支git checkout -b查看、暂存、提交本地变更git status/git add/git commit推送分支到远程git push并通过 GitHub 界面发起 Pull Request。环境准备确保 Windows 上已安装 Git BashGit Bash 是 Git for Windows 安装包自带的终端工具基于 MSYS2 提供类 Unix shell 体验。如果你还没有安装请从 Git 的官方安装渠道获取 Git for Windows 安装包并安装安装完成后在 Windows 资源管理器中右键菜单或开始菜单中即可找到 Git Bash 入口。提示如果右键菜单中没有 Git Bash 选项可以在 Git 安装目录的cmd文件夹中手动运行git-bash.exe或使用开始菜单搜索 Git Bash。Windows 下 Git Bash 的终端界面与 Linux/macOS 的 shell 不同它支持cd、ls等常用命令且目录路径既可以用 Windows 风格C:\Users\...也可以用类 Unix 风格/c/Users/...后文中均用cd folder的通用形式表示。第一步Fork 这个仓库在仓库页面右上角点击Fork按钮。这会在你的账号下创建该仓库的一份完整副本fork。Fork 是整个贡献流程的起点原因是权限模型主仓库first-contributions通常不允许陌生账号直接推送分支。有了自己账号下的副本你就可以在副本上自由创建分支、推送提交最后再通过 Pull Request 把变更合并回主仓库。这也是后文反复强调必须克隆自己的 Fork 而不是主仓库的原因。第二步克隆仓库到本地⚠️重要不要克隆主仓库必须克隆你 Fork 出来的副本。如果你克隆了主仓库后续git push会因为缺少写权限而失败。完整操作步骤对应原文档的 5 个子步骤打开你 Fork 出的仓库页面点击Code按钮复制显示的克隆链接HTTPS 或 SSH 格式均可。主仓库 README.md 中给出的克隆示例为 SSH 形式git clone gitgithub.com:your-username/first-contributions.git其中your-username是你的 GitHub 用户名。若你没有配置 SSH 密钥建议直接复制 Code 按钮下的 HTTPS 链接首次推送时会以弹窗方式提示输入凭据更省事。打开 Git Bash 终端。进入你打算存放项目的目录cd folder例如把项目放在~/projects下就执行cd projects。用刚才复制的链接克隆仓库git clone repo-url进入克隆下来的目录并可以用 VS Code 打开它cd first-contributions code .原文档建议用 VS Code 打开仓库因为它能直观地看到 Contributors.md 文件并以编辑器的 diff 视图确认改动。code .是 VS Code 的命令行入口需在 VS Code 中通过 Shell Command: Install code command in PATH 启用。克隆完成后本地仓库会自带一个名为origin的远程指向——注意它指向的是你的 Fork而不是主仓库。这一点对后面git push origin branch-name的行为至关重要推送目标是你自己的副本因此不会有权限问题。第三步创建一个新分支从克隆好的仓库根目录出发创建并切换到一个新分支git checkout -b branch-name 教程建议分支名采用add-your-name格式例如git checkout -b add-james-smithgit checkout -b做两件事以当前 HEAD 为基础新建分支并把工作区切换到该分支。从源码结构看主仓库 README.md 的英文版教程推荐使用更新的git switch -c branch-name命令并说明若你的 Git 版本较老、报 switchis not a git command 错误时就改用git checkout -b。也就是说两者等价checkout -b兼容性更好switch -c是新版 Git 的语义化命令。本篇 Git Bash 教程采用checkout -b是出于对新手的保守考虑两者选其一即可。扩展阅读仓库的附加材料中专门有一篇讲解为什么要在独立分支上做修改why-using-branches.zh-cn.md以及合并与变基rebase的区别rebase-vs-merge.md。第四步修改文件并提交Commit打开 Contributors.md。滚动到文件末尾追加一行你的名字。保存文件。原文档给出的示例格式是一条 Markdown 列表项由显示名 指向个人主页的链接组成形如- James Smith你只需替换成自己的名字和主页地址保持-前缀的列表格式与前后行一致即可。由于该文件已有近 6000 行记录把新行追加在文件末尾可以最大限度避免与其他贡献者产生合并冲突。接下来用命令确认并固化这次改动检查变更状态git statusgit status会列出未暂存unstaged changes和已暂存changes to be committed的文件。此时应看到Contributors.md出现在 modified but not staged for commit 区域。把变更加入暂存区git add Contributors.md原文档写的是git add file-name这里的file-name就是 Contributors.md。执行后git status中的该文件会转入 changes to be committed 区域。提交git commit -m Add your-name to Contributors list 把提交信息中的your-name替换成你的名字。-m参数指定提交说明遵循动词开头的祈使句惯例如 Add / Update是这个项目的通行写法。查看提交历史git log --oneline--oneline让每条提交压缩为一行短哈希 提交信息方便快速核对刚提交的记录是否在最顶端。这个命令在仓库的多种语言附加材料如 check-commit-log.zh-cn.md中也有讲解是日常查看历史的推荐方式。第五步Push 到远程确认所有步骤完成后把分支推送到远程git push origin branch-name例如git push origin add-james-smithorigin是克隆时自动配置的远程名指向你的 Forkbranch-name是你在本地刚创建的分支名。首次推送时如果本地分支与远程没有建立跟踪关系Git 会提示确认set upstream选择确认即可。推送成功后在你的 Fork 仓库页面就能看到这条新分支。第六步发起 Pull RequestPR打开你在 GitHub 上的 Fork 仓库页面在分支提示条上点击Compare pull request按钮确认源分支你的add-your-name与目标分支主仓库的main无误后点击Create/Submit pull request提交 Pull Request。提交后仓库维护者会审查你的 PR。由于只是追加一行名字通常会被快速合并进主项目的主分支main/master。PR 被合并后你会收到邮件通知——至此完成第一次完整的开源贡献。命令速查表步骤命令作用进入目录cd folder切换到项目存放目录克隆git clone repo-url把你的 Fork 克隆到本地建分支git checkout -b branch-name新建并切换到add-your-name风格分支查看状态git status确认哪些文件被修改暂存git add Contributors.md把改动加入暂存区提交git commit -m Add your-name to Contributors list记录一次提交查历史git log --oneline单行式查看提交列表推送git push origin branch-name把分支推送到你的 Fork出错排查与后续学习路径推送被拒绝permission denied / 403几乎总是因为克隆了主仓库而不是自己的 Fork。对照第二步检查git remote -vorigin应指向your-username/first-contributions而不是项目方账号。git push提示没有上游分支执行git push -u origin branch-name建立跟踪关系后续直接git push即可。想回退或修改刚才的提交仓库的附加材料提供了系统性的 Git 工作流场景文档例如撤销提交undoing-a-commit.md、修改提交信息amending-a-commit.md、变基与压缩提交squashing-commits.md。想换一种工具练习同一流程同一流程在仓库中有多个平行版本可对照学习——英文 Git 命令行版git-cli-tutorial-bengali.md 是同一 Git Bash 流程的早期孟加拉语版本而 github-cli-tutorial.md 则演示了用 GitHub CLIgh完成同样流程的方式简体中文 Git Bash 版git-bash-windows-tutorial.zh-cn.mdGUI 工具版GitHub Desktop、VS Code、GitKraken 等见 docs/gui-tool-tutorials/ 目录下的各教程主 README.md 末尾的 Tutorials using other tools 一节是完整索引。保持 Fork 与主仓库同步当你做了多次贡献后Fork 会逐渐落后于主仓库可参考 keeping-your-fork-synced-with-this-repository.md 学习同步方法。到这里你已经完整走过fork → clone → branch → commit → push → PR这条标准开源贡献流水线。第一次贡献的意义不在于改动大小而在于建立对 Git 协作模型分支隔离、暂存区、远程推送、Pull Request 合并的肌肉记忆——这些能力可以直接迁移到任何开源项目的首次贡献中。【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考