完成你的第一次开源贡献:以 first-contributions 项目为例的完整实战指南)
使用 GitHub CLIgh完成你的第一次开源贡献以 first-contributions 项目为例的完整实战指南【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions导读本指南面向所有希望在终端中完成一切操作的开发者讲解如何借助 GitHub 官方命令行工具GitHub CLIgh在 first-contributions 项目中完成自己的第一次开源贡献。你将全程不借助任何图形界面从认证登录、Fork 仓库、创建分支、修改文件、提交推送到最后创建 Pull Request 与查看 PR 状态完整走通开源社区最常见的fork - clone - edit - pull request贡献流程并掌握沿途可能遇到的认证报错与分支清理等实用技巧。为什么选择 GitHub CLIfirst-contributions 项目同时提供了 GUI 工具教程 与命令行教程而本指南属于终端爱好者路线。与点击按钮式的图形界面操作相比命令行路线稍具挑战性但回报同样丰厚你不需要在浏览器与终端之间来回切换Fork、创建 PR 等原本需要网页操作的动作全部可以在终端内完成并且这套技能可以直接复用到你后续参与的任何开源项目中。GitHub CLI 将 GitHub 的 REST 与 GraphQL API 封装为直观的子命令例如gh repo fork、gh pr create、gh status等。它与你系统里已有的git命令天然互补Git 负责本地版本库操作gh负责 GitHub 远程仓库的交互两者组合起来即可在纯终端环境下完成一次完整的贡献闭环。准备工作环境与账号在开始之前请确认以下前置条件与原文档一致Git 已安装本教程中的git switch、git add、git commit、git push等命令都依赖 Git。如果尚未安装请先根据你所用操作系统的官方说明完成安装Linux/macOS/Windows 的安装方式各有差异可参考仓库中的 installing-git-ubuntu.md 等文档。GitHub 账号后续的 Fork、PR 操作都需要登录态请提前注册并确认你的用户名。随后需要在本机安装GitHub CLIgh工具。安装方式随操作系统不同而不同Windows 可用官方安装包或wingetmacOS 可用 HomebrewLinux 各发行版均有对应包请参考 GitHub CLI 的官方安装说明安装完成后在终端执行gh --version验证是否成功。第一步认证登录gh auth login安装完成后所有gh命令都需要先通过认证才能调用 GitHub API。执行gh auth login命令会以交互式向导的方式引导你完成认证通常包括以下选择选择 GitHub.com还是 GitHub Enterprise Server选择认证方式HTTPS使用浏览器登录后续git操作通过凭据管理器保存令牌或SSH需要配置 SSH 密钥按提示在浏览器中完成授权或手动粘贴设备码 / Personal Access Token。跟随提示完成认证后你就拥有了在终端操作 GitHub 的能力。可以用gh auth status随时查看当前登录状态与账号信息。提示认证完成后GitHub CLI 会自动为git配置相应的凭据助手这也是后文git push能顺利通过 HTTPS 认证的原因之一。第二步Fork 仓库 ——gh repo forkFork 是开源贡献的第一步它会在你的 GitHub 账号下创建原仓库的一份副本之后你对仓库的所有修改都以这份副本为起点。在终端中执行gh repo fork firstcontributions/first-contributions重要提示命令执行后会询问你是否需要同时克隆clone到本地请选择yes是这样gh会帮你把 Fork 得到的远程仓库克隆到本地目录first-contributions中并自动为你配置好origin你的 Fork与upstream原仓库两个远程地址——这一步通常需要你在 GUI 教程中手动完成而在 CLI 路线中一条命令就搞定了。命令执行完成后你就拥有了位于你 GitHub 账号下的 Fork 仓库本地机器的仓库副本若选择克隆已配置的origin指向你的 Fork与upstream指向原仓库远程。第三步创建你的专属分支 ——git switch开源社区约定俗成的习惯是永远不要在main主分支上直接提交改动而是为每次改动创建一个语义清晰的功能分支。这一步使用标准的 Git 命令完成git switch -c add-john-doe其中add-john-doe是分支名请替换为你自己的标识例如add-你的名字。-c是--create的简写表示创建并切换到新分支。兼容性说明git switch是较新版本 Git 提供的命令。如果执行时报错switch is not a git command说明你的 Git 版本较旧可以改用等价的git checkout -b add-john-doe效果相同。第四步修改文件并提交 ——git status/git add/git commit现在进入实际贡献环节。first-contributions 项目为新手准备的练习任务是把自己的名字添加到 Contributors.md 文件中。用任意文本编辑器打开仓库根目录下的Contributors.md将你的名字通常以- 你的名字的列表格式添加到文件中——注意文档要求不要放在文件开头或结尾而是插入在中间任意位置保存文件。回到终端在项目目录下执行git status你会看到 Git 检测到Contributors.md发生了修改这就是工作区有改动的信号。随后分两步完成提交将改动加入暂存区Staging Areagit add Contributors.md提交改动并附上清晰的提交信息git commit -m Add your-name to Contributors list把your-name替换为你的真实名字例如git commit -m Add John Doe to Contributors list。补充说明如果第一次提交时 Git 提示Please tell me who you are说明尚未配置提交者身份。此时需要先配置用户信息例如git config --global user.name Your Name与git config --global user.email youexample.com。关于全局配置、仓库级配置、命令行级配置的区别与优先级命令行 仓库 全局可参考仓库中的 configuring-git.md。第五步推送分支到 GitHub ——git push提交只是在本地生效要让远程 GitHub 仓库看到你的改动需要推送分支git push origin -u your-branch-nameorigin是你的 Fork 仓库的远程名称-u即--set-upstream将本地分支与远程分支建立跟踪关系以后在该分支上直接执行git push即可your-branch-name替换为你在第三步创建的分支名。补充说明若本地克隆是通过gh repo fork自动完成的origin已指向你的 Fork因此推送会直接进入你自己的仓库与主仓库互不影响——这正是开源协作中 Fork 工作流的安全保障。推送报错排查认证失败如果推送时遇到类似下面的报错请展开处理remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. fatal: Authentication failed for https://github.com/your-username/first-contributions.git/这是 Git 官方逐步取消 HTTPS 密码认证的常见结果。解决办法是改用SSH 密钥或Personal Access Token进行认证在自己的账号下生成 SSH 密钥并添加到 GitHub 账号的 SSH keys 设置中若远程地址仍是 HTTPS 形式可将origin远程切换为 SSH 形式git remote set-url origin gitgithub.com:your-username/first-contributions.git切换后推送就不会再弹出用户名密码认证也就不会出现上述认证失败。也可以随时用git remote -v检查当前origin的地址是否正确指向你自己的 Fork。第六步提交 Pull Request ——gh pr create改动已经推送到你的 Fork 仓库接下来需要向原仓库发起合并请求Pull Request简称 PR请求项目维护者将你的分支合并进主分支。这正是 GitHub CLI 的高光时刻——无需打开浏览器gh pr create --repo firstcontributions/first-contributions--repo指定目标仓库为原仓库firstcontributions/first-contributions表示 PR 提交到该项目而非你的 Fork命令会交互式地询问 PR 标题与描述填写提交说明后确认即可创建成功。创建完成后命令会输出该 PR 的网页地址方便你分享给他人或在浏览器中查看讨论。第七步查看 PR 动态 ——gh status提交 PR 后可以用gh status命令查看与你相关的 Pull Request 与 Issue 状态gh status该命令会列出当前账号下等待审查、被提及或已合并等状态的 PR 概览让你不必打开浏览器就能掌握贡献的进展——例如你的 PR 是否已被维护者合并。收尾与进阶清理分支、同步 Fork贡献流程完成、PR 被合并后还可以做两件收尾工作删除已合并的功能分支本地执行git branch -d add-john-doe删除本地分支若需删除远程 Fork 上的分支执行git push origin --delete add-john-doe。完整的分支清理流程可参考 removing-branch-from-your-repository.md。让 Fork 与原仓库保持同步开源项目持续演进你的 Fork 与本地仓库会逐渐落后于原仓库。此时可通过upstream远程拉取最新改动git remote add upstream https://github.com/firstcontributions/first-contributions.git # 若尚未添加 git fetch upstream git rebase upstream/main git push origin main以上三步分别完成获取原仓库最新提交、将本地 main 重放到最新、同步你的 Fork。完整说明见 keeping-your-fork-synced-with-this-repository.md。常见问题与更多学习材料PR 提交后会发生什么维护者会审查你的改动如果一切正常会将其合并进主分支你通常会收到合并通知邮件。若原文档与主分支之间存在冲突可参考 resolving-merge-conflicts.md 了解如何用git status、冲突标记//与git add手工解决冲突。第一次贡献之后还能学什么本教程覆盖了开源贡献最核心的fork - clone - edit - pull request标准工作流。如果你想进一步巩固 Git 技能仓库的 additional-material.md 索引整理了修改提交amending-a-commit.md、撤销提交undoing-a-commit.md、压缩提交squashing-commits.md、暂存文件stashing-a-file.md等进阶主题非常适合作为你的下一个学习目标。如果你偏好其他工具仓库还提供了 GitHub Desktop、VS Code、GitKraken 等图形化工具的教程参见 README.md 的 Tutorials Using Other Tools 一节以及中文版 github-cli-tutorial.zh-cn.md可按需选择。总结通过本指南你完成了 GitHub CLI 从认证到贡献的全流程gh auth login登录 →gh repo fork一键 Fork 并克隆 →git switch -c创建分支 → 编辑Contributors.md→git add/git commit提交 →git push -u origin推送 →gh pr create --repo创建 PR →gh status跟踪状态。这套完全基于命令行的能力将帮助你在未来的开源协作中保持高效、专注与自信——你的名字也已经留在了 Contributors.md 中成为这个项目历史的一部分。【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考