first-contributions 开源贡献实战指南:用 fork → clone → branch → PR 走通你的第一次 Pull Request
文档教程开源治理【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址https://gitcode.com/gh_mirrors/fi/first-contributions点击查看免费下载本篇指南以 first-contributions 项目的海盗英语版入门文档docs/translations/README.en-pirate.md为主体完整还原初学者完成第一次开源贡献的六大标准步骤Fork 仓库、Clone 到本地、创建分支、修改并提交、Push 到远端、提交 Pull Request。读完本篇你将掌握 GitHub 上最通用的fork → clone → edit → pull request协作流程并了解项目提供的进阶 Git 场景文档与 GUI 工具教程为参与任意开源项目打下基础。一、这份海盗英语指南的来龙去脉first-contributions 项目的核心定位正如项目描述所说帮助初学者迈出开源贡献的第一步。项目的英文主文档 README.md 以最简化的步骤引导新手完成一次真实可合并的贡献而 docs/translations/README.en-pirate.md 则是主 README 的海盗英语English Pirate翻译版本——它把整套教程用海盗腔重新演绎例如海盗英语原文标准含义skewer on th fork button点击clickFork 按钮this-be-ye你的 GitHub 用户名yer puter你的电脑your computerth ships log提交日志 / 状态记录hearties朋友、同伴plunder this code chest复刻fork这份仓库在仓库的 README.md 语言切换栏中该海盗版与中文docs/translations/README.zh-cn.md、日文、法文等数十个语言版本并列全部索引见 docs/translations/Translations.md。这份文档的技术骨架与主 README 完全一致因此海盗英语只是表达风格的差异教程内容本身是严肃、可执行的。二、行前准备安装 Git 与准备 GitHub 账号教程假设你已拥有 GitHub 账号。若本地机器尚未安装 Git请先完成安装各操作系统安装指南可参考仓库中的 installing-git-ubuntu.md 与 installing-git-arch.md。安装完成后可在终端验证版本git --version本教程海盗版采用git checkout -b创建分支该语法在所有 Git 版本中均可用主 README 则推荐新版 Git 的git switch -c。两种写法效果相同后文会分别给出。三、第一步Fork 仓库进入 first-contributions 项目主页点击页面顶部的Fork按钮。Fork 的本质是在你自己名下的 GitHub 账号中生成该仓库的一份完整副本。从此你拥有对该副本的读写权限可以在其中任意修改、创建分支而不会影响上游原始仓库。这也是 GitHub 上所有开源协作的起点——没有 Fork 得到的私人拷贝你无法对没有写权限的他人仓库直接提交。四、第二步Clone 仓库到本地Fork 完成后进入你账号下的副本仓库点击页面上的Code代码按钮在弹出面板中复制仓库 URLHTTPS 或 SSH 均可回到本地终端执行 clone 命令git clone url ye jus copied其中url ye jus copied去掉引号就是你刚复制到的你自己 Fork 副本的仓库地址而不是上游仓库地址。示例this-be-ye替换为你的 GitHub 用户名git clone https://github.com/this-be-ye/first-contributions.gitgit clone的作用是把 GitHub 上该仓库的全部内容代码、历史记录、分支原样复制到你本地电脑形成一个与远端完全对应的本地仓库目录。若你想直接获取本镜像仓库做练习也可执行git clone https://gitcode.com/gh_mirrors/fi/first-contributions.git五、第三步创建专属分支首先进入克隆下来的仓库目录cd first-contributions然后使用git checkout命令创建并切换到新分支git checkout -b add-your-new-branch-name示例git checkout -b add-luke-oliff关于分支命名教程特别说明分支名不一定要包含add前缀但加上它是个合理习惯因为这条分支的用途正是把你的名字添加到贡献者列表中见 Contributors.md。现代 Git 替代写法主 README.md 使用git switchgit switch -c add-your-new-branch-name若你的 Git 版本较旧执行git switch会报错 Git: switch is not a git command此时改用git checkout -b即可。为什么贡献时一定要开新分支因为开源协作中主干分支main/master应当保持稳定你的实验性改动应该隔离在独立分支上待通过 Pull Request 审查合并后再并入主干。这也是本教程刻意训练的核心习惯。六、第四步修改 Contributors.md 并提交用任意文本编辑器打开仓库根目录的 Contributors.md把你的名字添加进去。教程特别强调不要加在文件开头或结尾而是加在中间任意位置——这是为了尽量降低多人在同一文件上产生冲突的概率也是开源协作中减少冲突面的实用技巧。该文件在当前仓库中已积累了数千行贡献者条目如- [Name](https://github.com/username)这样的 Markdown 列表格式每位贡献者一条记录格式统一、易于合并。保存文件后回到项目目录执行git statusgit status你会看到Contributors.md出现在变更列表中。接下来把改动加入暂存区git add Contributors.md然后提交commit提交信息中替换yer-name为你的名字git commit -m Add yer-name to Contributors list这三条命令构成了 Git 本地提交的标准三步git status查看状态 →git add将改动放入暂存区 →git commit把暂存区内容固化为一次带说明的提交。提交信息commit message应简明描述本次改动做了什么例如Add Zhang-San to Contributors list。七、第五步Push 到 GitHub本地提交完成后把它推送到你在 GitHub 上的 Fork 副本git push origin add-yer-branch-name其中add-yer-branch-name替换为前面创建的分支名如add-luke-oliff。主 README.md 还提供了带-u参数的等价写法git push -u origin your-branch-name-u即--set-upstream会在首次推送时建立本地分支与远端分支的跟踪关系之后直接git push即可。推送时的认证问题若使用 HTTPS 地址推送时出现Authentication failed错误通常是密码认证已不被支持GitHub 自 2021 年 8 月起移除了密码认证需改用个人访问令牌或 SSH 密钥。可以先检查远端地址git remote -v若输出的是https://github.com/your-username/your_repo.git形式的 HTTPS 地址可切换为 SSH 形式git remote set-url origin gitgithub.com:your-username/your_repo.gitSSH 密钥的生成与配置方法可参考仓库中的 storing-credentials.md。八、第六步提交 Pull Request推送成功后回到你 GitHub 上的 Fork 副本页面会看到一个Compare pull request按钮点击它确认对比基准base 仓库为上游 first-contributions 的主分支compare 分支为你刚推送的新分支填写 Pull Request 的标题与说明点击Create pull request提交。Pull Request简称 PR的本质是请求上游维护者审查并合并你的分支改动。项目维护者合并你的 PR 后你会收到一封合并通知邮件。此时回到本地你的名字已正式进入上游项目的 Contributors.md——这就是开源贡献闭环的完成。九、PR 合并后的进阶Git 场景实战手册完成首个 PR 后项目在 docs/additional-material/git_workflow_scenarios/additional-material.md 中汇总了一份进阶 Git 场景手册覆盖了真实协作中必然遇到的常见问题建议按需查阅场景对应文档适用时机修改最近一次提交amending-a-commit.md提交信息写错、漏改了文件推送前可反复 amend配置 Git 用户信息configuring-git.md首次使用 Git 前设置 name/email保持 Fork 与上游同步keeping-your-fork-synced-with-this-repository.md上游仓库更新后拉取最新改动解决合并冲突resolving-merge-conflicts.mdPR 出现冲突需要手动合并合并多个提交squashing-commits.md审查者要求把多个提交整理为一个撤销已推送的提交reverting-a-commit.md需要反向撤销远端已合并的改动撤销本地提交undoing-a-commit.md本地改乱了想重置仓库状态删除分支removing-branch-from-your-repository.mdPR 合并之后清理已无用的分支移除文件removing-a-file.md提交前想从仓库移除某个文件移动提交到其他分支moving-a-commit-to-a-different-branch.md提交放错了分支创建 .gitignorecreating-a-gitignore-file.md让 Git 忽略不必要的文件手册中特别强调的实践要点包括amend 只应在推送前使用删除分支应等到 PR 合并之后squash 常用于审查者要求一个 PR 只保留一个信息完整的提交的场景。十、不想用命令行GUI 工具教程一览海盗版文档开头即提醒If ye be nah comfortable wit command line如果你对命令行不习惯可以选用 GUI 工具教程。仓库在 docs/gui-tool-tutorials 下为常见图形化工具提供了完整的分步教程每个教程都遵循与命令行版相同的 fork → clone → branch → PR 流程只是操作界面不同GitHub Desktop 教程——GitHub 官方桌面客户端适合完全不想碰终端的初学者Visual Studio Code 教程——在 VS Code 编辑器内完成全部 Git 操作Visual Studio 2017 教程——Windows 下 Visual Studio 集成环境IntelliJ IDEA 教程——Java 开发者常用的 IDE 集成 GitGitKraken 教程——可视化 Git 客户端Sourcetree 教程——macOS 平台常用的 Atlassian Git 客户端。这些教程的中文版本收录于 docs/gui-tool-tutorials/translations如 github-desktop-tutorial.zh-cn.md方便中文读者对照学习。十一、结语这就是标准贡献流程完成上述六步你就完整走通了一遍开源贡献的标准工作流fork → clone → edit → pull request。这个流程在 GitHub 上几乎所有开源项目中通用——从提交文档修正到提交代码特性本质都是在个人副本上改、在独立分支上改、用 PR 请求合并这三件事。继续深入的建议想进一步练习可查看项目在 docs/how-to-contribute-to-open-source-projects.md 中提供的开源参与指引需要补充背景知识可阅读 docs/additional-material/git_workflow_scenarios/Useful-links-for-further-learning.md 与 gitflow.md、rebase-vs-merge.md 等原理性文档对照其他语言版本理解本教程可访问 docs/translations 目录下的各语言 README。祝你的第一次 Pull Request 扬帆起航顺利靠岸。赞分享文档教程开源治理【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址https://gitcode.com/gh_mirrors/fi/first-contributions点击查看免费下载相关推荐first-contributions 开源贡献入门指南用 fork → clone → branch → pull request 完成你的第一次开源贡献first contributions 开源贡献入门指南用 fork → clone → branch → pull request 完成你的第一次开源贡献文档教程开源治理first-contributions 实战指南从零完成你的第一次开源贡献Fork、Clone、Branch、Commit、Push 与 Pull Request 全流程first contributions 实战指南从零完成你的第一次开源贡献Fork、Clone、Branch、Commit、Push 与 Pull Requ文档教程开源治理first-contributions 实战指南用 fork-clone-edit-pull request 工作流完成你的第一次开源贡献first contributions 实战指南用 fork clone edit pull request 工作流完成你的第一次开源贡献 本指南以开源教学仓文档教程开源治理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OpenClaw 本地模型选型指南:Ollama 部署与 Agent 工具调用优化

OpenClaw 本地模型选型指南:Ollama 部署与 Agent 工具调用优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/13 1:10:26 阅读更多 →
fp-go源码尽调:Go函数式编程的Option/Either与性能代价

fp-go源码尽调:Go函数式编程的Option/Either与性能代价

1. 开篇:为什么我要把 fp-go 的源码翻个底朝天先说结论放在最前面:如果你所在团队正打算用函数式编程风格改造 Go 项目,或者你在技术选型时看到fp-go这个库犹豫要不要引入,那么这篇基于源码实证的静态尽调报告,应该能帮…

2026/11/13 1:10:26 阅读更多 →
垂直轴风力发电机Simulink仿真:气动建模与MPPT控制实践

垂直轴风力发电机Simulink仿真:气动建模与MPPT控制实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 19:05:46 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻