尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

first-contributions 新手入门指南:用 fork → clone → edit → pull request 完成你的第一次开源贡献

first-contributions 新手入门指南:用 fork → clone → edit → pull request 完成你的第一次开源贡献 first-contributions 新手入门指南用 fork → clone → edit → pull request 完成你的第一次开源贡献【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions导读本文以 first-contributions 仓库README.md的瑞典语官方翻译版docs/translations/README.se.md为骨架完整讲解开源贡献中最经典的fork → clone → edit → pull request四步流程。你将学会用 git 命令行完成创建仓库副本fork、克隆到本地、建立分支、修改 Contributors.md、暂存与提交、推送远端最后提交 Pull Request 交由维护者合入。本文还结合仓库内的补充教程docs/additional-material/git_workflow_scenarios/additional-material.md与多款 GUI 工具教程帮你从第一次提交平滑过渡到能独立参与任意开源项目。如果你不习惯命令行可以直接跳到文末的其他工具教程使用 GitHub Desktop、Visual Studio Code、GitKraken 等图形界面完成同样流程。一、准备工作为什么实际动手是学习开源贡献的最好方式第一次做任何事都是困难的尤其是当你与他人协作时犯错会让人格外紧张。first-contributions 项目存在的意义正是简化并引导初学者完成第一次贡献——它刻意让你在一个安全、无风险的真实仓库中完整走一遍协作流程。阅读文章和观看教程固然有帮助但真正做一遍才是学习效果最好的方式。本项目没有复杂的业务代码你的任务只是把名字写进 Contributors.md 并提交 Pull Request维护者会将其合并进主分支。通过这一次真实的提交你将熟悉之后在几乎所有开源项目中都会反复遇到的标准流程。在开始之前请确认两件事你有一个 GitHub 账号用于 Fork 和提交 Pull Request。你的电脑上安装了 git。如果没有请先完成安装与配置可参考仓库中的 configuring-git.md 与 installing-git-ubuntu.md 等文档。二、Fork在你自己账号下创建仓库副本Fork复刻是开源协作的起点。操作方式打开 first-contributions 仓库页面点击页面顶部的Fork按钮。这一步会在你自己的 GitHub 账号下生成一份该仓库的完整副本。为什么必须先 Fork 而不是直接改原仓库因为绝大多数开源项目不允许陌生人在主仓库直接写代码——你只能先拥有自己的副本在副本上修改再通过 Pull Request 请求维护者把你的改动合入原仓库。从源码结构看仓库以 Contributors.md目前已积累数千行贡献者名单作为练兵场正是为了让每个人的首次改动都低风险、易合并。三、Clone把 Fork 的仓库克隆到本地Fork 完成后进入你自己的 GitHub 账号打开刚才 Fork 出来的 first-contributions 仓库点击Code代码按钮再点击copy to clipboard复制到剪贴板图标复制仓库 URL。然后打开终端执行git clone url you just copied其中url you just copied不带引号就是你 Fork 出来的仓库 URL。例如this-is-you换成你的 GitHub 用户名git clone https://github.com/this-is-you/first-contributions.git这条命令会把仓库的全部内容历史提交、所有分支、全部文件下载到你的电脑上。注意一定要克隆你自己 Fork 的仓库而不是原仓库否则你既没有推送权限也无法为后续的 Pull Request 提供改动来源。四、创建分支为你的改动隔离一个独立工作区克隆完成后先进入仓库目录如果你还没有在里面的话cd first-contributions接下来用git checkout创建并切换到一个新分支旧版 git 通用写法也是瑞典语文档采用的命令git checkout -b lägg till ditt branch-namn例如git checkout -b mitt-tillag分支名的语义是add-你的名字例如add-james-smith。为什么一定要新建分支因为开源项目的协作准则是主分支main保持稳定所有改动都在特性分支上进行。这样即使你的改动有问题也不会影响主分支维护者也能清楚地审查这个 PR 到底改了什么。如果你的 git 版本较新也可以使用等价的git switch -c 分支名见 README.md。两者效果相同switch是较新版本对语义的澄清。五、修改文件并提交把名字写进 Contributors.md现在打开 Contributors.md在文本编辑器中把你的名字添加到文件中间任意位置不要在文档开头或结尾添加。保存文件。然后在项目目录下执行git status你会看到 git 报告了文件变更——这是 git 在告诉你有未提交的改动。5.1 暂存改动git add用git add把改动加入暂存区staging areagit add Contributors.mdgit add的作用是选定哪些改动要进入下一次提交。在真实项目中一次提交只应包含逻辑上相关的改动git add就是你做这种选择的手段。5.2 提交改动git commit用git commit把暂存区的改动固化为一次提交git commit -m Add your-name to Contributors list把your-name替换成你的名字。-m参数后面是提交信息——好的提交信息应当简要说明做了什么、为什么这也是仓库中 Useful-links-for-further-learning.md 收录专门讲 commit message 写作资料的原因。六、Push把本地提交推送到你的 GitHub Fork改动还只在你的电脑上需要用git push推送到远端也就是你 Fork 的那个 GitHub 仓库git push origin add-your-branch-name把add-your-branch-name换成你之前创建的分支名。origin是 git 对你克隆来源远端你的 Fork的默认命名。推送时如果遇到认证错误例如提示 Support for password authentication was removed说明你的远端地址是 HTTPS 形式而 GitHub 已不再支持密码认证。可参照 README.md 中的处理方法先执行git remote -v查看远端地址再改用 SSH 地址git remote set-url origin gitgithub.com:your-username/your_repo.git七、发起 Pull Request请求维护者合并你的改动推送成功后回到GitHub 上你自己的仓库页面你会看到一个Compare pull request按钮点击它。此时 GitHub 会展示你的分支 → 原仓库主分支的改动对比确认无误后提交submit这个 Pull Request。至此你已经走完了fork → clone → edit → pull request的完整流程。维护者收到 PR 后会审查改动并将其合并进主项目合并完成后你会收到通知邮件。这也是你在以后参与任何开源项目时都会反复经历的协作闭环。八、第一次贡献之后继续进阶的方向恭喜你刚刚完成了一次真实的开源贡献。接下来可以这样继续分享你的成果通过 first-contributions 的 Web 应用分享你的首次贡献。练习更多如果还想多练几遍可以关注仓库作者维护的 code-contributions 练习项目。参与真实项目在 Web 应用的项目列表中挑选带有 easy issues新手友好问题的仓库开始贡献。8.1 深入 Git 实战补充材料仓库在 docs/additional-material/git_workflow_scenarios/additional-material.md 中整理了进阶主题全部以你已走完基础教程为前提覆盖日常协作高频场景主题文档适用场景修改最近一次提交amending-a-commit.md提交信息有笔误、漏加了改动用git commit --amend修正同步 Fork 与上游keeping-your-fork-synced-with-this-repository.md上游仓库更新后用git fetch upstreamgit rebase upstream/main保持 Fork 同步解决合并冲突resolving-merge-conflicts.md多人改动同一处代码时手动处理冲突标记撤销本地提交undoing-a-commit.md用git reset撤销未推送的提交或暂存删除分支removing-branch-from-your-repository.mdPR 合并后清理本地与远端的旧分支压缩提交squashing-commits.md审查者要求把多个提交合并为一个时配置 gitconfiguring-git.md设置用户名、邮箱等全局配置学习资源索引Useful-links-for-further-learning.md大量 git/GitHub 学习链接与速查表8.2 进阶知识点速览修改最近一次提交amending-a-commit.md如果提交已推送且你希望改动留在同一个 commit 里可以git add 你的改动文件 git commit --amend -m 新的提交信息 git push --force注意git push --force会覆盖远端历史可能丢弃其他协作者同时期的改动。更安全的做法是使用git push --force-with-lease它会在远端有他人新提交时拒绝覆盖。同步 Fork 与上游keeping-your-fork-synced-with-this-repository.md开源协作典型的是三角工作流——上游公共仓库、你的 GitHub Fork、你的本地仓库三者协同。当 GitHub 提示你落后若干提交时依次执行git checkout main git remote add upstream https://github.com/firstcontributions/first-contributions.git git fetch upstream git rebase upstream/main git push origin main也可以直接用git pull upstream main一步完成 fetch 与 merge。九、其他工具教程不习惯命令行也可以参与仓库为不同偏好的开发者准备了多套图形界面教程详见 docs/gui-tool-tutorials 目录全部遵循同一套 fork → clone → edit → PR 逻辑GitHub Desktop官方桌面客户端可视化完成分支与提交Visual Studio Code主流编辑器内置 git 支持Visual Studio 2017GitKrakenAtlassian SourcetreeIntelliJ IDEA此外仓库还提供 CLI 工具教程docs/cli-tool-tutorials/github-cli-tutorial.md、docs/cli-tool-tutorials 下的 git-bash-windows 教程以及多语言版本的开源贡献通识文档docs/how-to-contribute-to-open-source-projects.md。十、结语把第一次变成每一次通过本文你已经在 first-contributions 仓库中完整实践了开源贡献的标准流程fork 创建副本 → clone 拉到本地 → 新建分支 → 修改并提交 → push 推送 → Pull Request 请求合并。这套流程在绝大多数开源项目中大同小异区别只是改动的内容从写名字变成改代码、修 Bug、写文档。请记住开源协作的本质是安全地犯错、公开地学习。第一次贡献之后保持 Fork 与上游同步、认真处理合并冲突、写好提交信息——这些在第八节补充材料中提到的技能会让你从完成第一次成长为持续贡献的成熟协作者。【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表