- 文档
- 教程
- 开源治理
【免费下载链接】first-contributions
🚀✨ Help beginners to contribute to open source projects
导读
本指南基于开源仓库 first-contributions 的多语言入门文档(docs/translations/README.lv.md 及仓库根目录 README.md),系统讲解初学者如何在真实环境中完成第一次开源贡献。读完本文,你将掌握fork → clone → edit → pull request这条标准协作工作流,学会分支创建、文件修改、提交推送与 PR 提交流程,并了解后续同步 fork、解决合并冲突等进阶技能。
仓库定位:本项目(项目描述为 "Help beginners to contribute to open source projects")本身就是让新人练手的目标仓库——新人把名字添加到 Contributors.md 后提交 PR,即完成一次真实的开源协作演练。
为什么需要「动手练一次」而不是只看教程
第一次做某件事总是困难的,尤其是在与他人协作时,犯错会令人不适。阅读文章、观看教学视频固然有帮助,但没有任何方式比在真实环境中实操一次更好。first-contributions 项目的目标正是「简化并引导初学者完成第一次贡献」:你面对的不是模拟环境,而是一个真实仓库,你提交的 PR 会被真实合并,名字会出现在真实的贡献者名单中(当前 Contributors.md 已有数千条记录,这也印证了该流程的可操作性)。
准备工作:安装 Git
开始之前请确认你的机器上已经安装了 Git。如果尚未安装,请先完成 Git 的安装与环境配置(本仓库提供了 Ubuntu 与 Arch Linux 的安装说明,可参考 installing-git-ubuntu.zh-cn.md 与 installing-git-arch.zh-cn.md)。
若你暂不习惯命令行,本仓库同样提供了基于图形界面工具的完整教程(见文末「其他工具教程」一节),但本文以命令行方式为主线。
第一步:Fork(分叉)仓库
Fork 是在 GitHub 页面上点击本仓库顶部的Fork按钮。这一操作会在你自己的 GitHub 账户下创建该仓库的一份副本。
为什么要先 Fork?因为你没有权限直接向原仓库写代码,而 Fork 得到的副本完全归你所有,你可以自由修改、推送,再通过 Pull Request 把改动提交回原仓库。这是开源协作中「复制 → 修改 → 回交」模式的起点。
第二步:Clone(克隆)仓库到本地
Fork 之后,进入你账户下的那份仓库副本,点击Code按钮,选择 HTTPS 或 SSH 方式,再点击复制到剪贴板图标复制仓库地址。
打开终端,执行克隆命令:
git clone "你刚复制的地址"其中的地址是你 fork 出的仓库 URL,例如:
git clone https://github.com/你的用户名/first-contributions.git这里你的用户名是你的 GitHub 用户名。执行后,GitHub 上 first-contributions 仓库的内容就被完整复制到了你的电脑上。
提示:如果 clone 时遇到认证问题,可检查远端地址(
git remote -v),或改用 SSH 地址(git@github.com:你的用户名/first-contributions.git)并通过git remote set-url origin切换,避免 HTTPS 密码认证被拒绝。
第三步:创建功能分支(Branch)
首先进入仓库目录:
cd first-contributions然后使用git checkout创建一个新分支:
git checkout -b <新分支的名称>例如:
git checkout -b add-alonzo-church分支名中不强制包含add,但建议保留——因为这个分支的用途就是把自己的名字加入列表,命名清晰便于维护者理解 PR 意图。若你使用的 Git 版本较新,也可以使用等价的git switch -c <分支名>(旧版 Git 若提示switch不是有效命令,改用git checkout -b即可)。
原理说明:
git checkout -b会基于当前所在分支创建新分支并立即切换过去。此后的git add/git commit都只会作用于这个新分支,不会影响main分支,这正是「功能分支」隔离改动、避免相互干扰的核心机制。
第四步:修改文件并提交(Commit)
用文本编辑器打开仓库根目录下的 Contributors.md,把你的名字添加进去。注意不要加在文件开头或结尾,而是放在中间的任意位置。保存文件。
回到项目目录执行git status,可以看到文件中出现了待提交的改动。接下来把改动加入暂存区:
git add Contributors.md然后提交这些改动:
git commit -m "Add <你的名字> to Contributors list"将<你的名字>替换为你自己的名字。git commit会把暂存区的改动固化为一个带提交信息的版本快照,-m参数用于直接指定提交信息,避免打开编辑器。
第五步:推送到 GitHub(Push)
将本地分支的改动推送到远程仓库:
git push origin <分支名称>将<分支名称>替换为第三步中创建的分支名。这里origin指向你 fork 出的远程仓库(即克隆时使用的默认远程名)。执行后,改动出现在你 GitHub 账户下该仓库的对应分支上。
第六步:提交 Pull Request(PR)
回到 GitHub 上你 fork 的仓库页面,会看到一个Compare & pull request按钮,点击它进入 PR 创建页面,填写说明后提交即可。
提交后,维护者会将你的改动合并进项目的main分支,合并完成时你会收到邮件通知。至此,你的第一次开源贡献就完成了——这是一次完整的fork → clone → edit → pull request标准工作流演练,也是今后参与任何开源项目都会反复遇到的基本协作模式。
接下来做什么:从第一次贡献走向长期协作
完成首次贡献后,可以沿着以下路径继续深入:
1. 保持 fork 与原仓库同步
随着你和其他人不断向项目贡献,原仓库会持续前进,你的 fork 会逐渐落后(GitHub 会提示 "a few commits behind")。此时需要执行「三角工作流」(Triangle Workflow):上游公开仓库 → 本地仓库 → 你的 GitHub fork。具体操作如下:
# 1. 确保在 main 分支 git checkout main # 2. 添加上游仓库为远程,命名为 upstream git remote add upstream https://github.com/firstcontributions/first-contributions.git # 3. 拉取上游最新提交 git fetch upstream # 4. 将上游 main 合并/变基到本地 main git rebase upstream/main # 5. 推送本地 main 到你的 fork git push origin main也可以一步到位:git pull upstream main同时完成 fetch 与合并。详见 keeping-your-fork-synced-with-this-repository.md。
2. 掌握进阶 Git 技巧
本仓库在 additional-material.md 中汇总了贡献者常用的进阶场景,包括:
- 修改最近一次提交:用
git commit --amend -m "新提交信息"修正提交信息或补充遗漏的改动;若该提交已推送远程,需用git push --force覆盖远端历史(更安全的是--force-with-lease,避免误覆盖他人的改动),详见 amending-a-commit.md; - 解决合并冲突:当两个分支修改了同一行、或一方删除的文件另一方仍在修改时,Git 无法自动合并。可通过
git status查看未合并文件,用<<<<<<< HEAD ... ======= ... >>>>>>> 分支名标记定位冲突,手工整合后git add并git commit完成合并;也可以git mergetool调用可视化工具,或git merge --abort放弃合并,详见 resolving-merge-conflicts.md; - 整理提交历史:通过交互式 rebase 合并多个提交(squashing)、撤销已推送/未推送的提交、移动提交到其他分支等,对应的文档均在 docs/additional-material/git_workflow_scenarios 目录下。
3. 把贡献分享出去,并参与更多项目
完成贡献后可以在社区分享你的成果,同时可以继续在更多仓库中练习:优先选择带有 easy issues(简单问题)标记的开源项目起步。无论选择哪条路,你已掌握的这条 fork → PR 工作流都会反复派上用场。
其他工具教程(GUI 方式)
如果你不习惯命令行,本仓库为多种主流 GUI 工具提供了对应教程(均位于 docs/gui-tool-tutorials 目录下):
| 工具 | 教程 |
|---|---|
| GitHub Desktop | github-desktop-tutorial.md |
| Visual Studio 2017 | github-windows-vs2017-tutorial.md |
| GitKraken | gitkraken-tutorial.md |
| Visual Studio Code | github-windows-vs-code-tutorial.md |
| Atlassian Sourcetree | sourcetree-macos-tutorial.md |
| IntelliJ IDEA | github-windows-intellij-tutorial.md |
此外,仓库还提供了 Windows 下使用 Git Bash 与 GitHub CLI 的终端教程(见 docs/cli-tool-tutorials 目录),以及面向非程序员的贡献指南(如 Things a non Programmer can do.md 的中文版 Things a non Programmer can do.zh-cn.md)。
小结
本文以 first-contributions 仓库的入门文档为骨架,完整还原了fork → clone → edit → pull request的第一次贡献全流程,并延伸介绍了 fork 同步、提交修正、合并冲突解决等进阶主题。你现在已经具备向任意开源项目提交首次贡献的完整能力——动手实践,是学习开源协作最好的方式。
- 文档
- 教程
- 开源治理
【免费下载链接】first-contributions
🚀✨ Help beginners to contribute to open source projects
相关推荐
first-contributions 实战指南:用 fork → clone → edit → PR 流程完成你的第一次开源贡献
first contributions 实战指南:用 fork → clone → edit → PR 流程完成你的第一次开源贡献 first contribu
文档教程开源治理first-contributions 新手完全指南:用 fork-clone-edit-PR 工作流完成你的第一次开源贡献
first contributions 新手完全指南:用 fork clone edit PR 工作流完成你的第一次开源贡献 本篇技术指南以 first con
文档教程开源治理first-contributions 实战指南:用 fork-clone-edit-pull request 工作流完成你的第一次开源贡献
first contributions 实战指南:用 fork clone edit pull request 工作流完成你的第一次开源贡献 本指南以开源教学仓
文档教程开源治理
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考