first-contributions 入门指南:从零完成你的第一个开源 Pull Request
2026/9/19 4:57:38 网站建设 项目流程

first-contributions 入门指南:从零完成你的第一个开源 Pull Request

【免费下载链接】first-contributions🚀✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions

本指南以 first-contributions 仓库的 埃及阿拉伯语版 README 为骨架,系统讲解新手完成首次开源贡献的完整路径:Fork → Clone → 创建分支 → 修改并提交 → Push → 提交 Pull Request。读完本文,你将掌握这条在几乎所有开源项目中都通用的协作工作流,并学会处理推送时的认证报错、保持 Fork 与上游仓库同步等高频实战问题。

项目定位:为什么需要一个"第一次贡献"练习场

first-contributions 是一个专门为开源新手设计的练习仓库。它的核心思想很朴素:与其只看视频和文章,不如亲手在一个真实仓库上走完一遍贡献流程。仓库目录下的 Contributors.md 就是练习的落点——这个文件目前已有数千行、近六千行贡献者名单,每一位贡献者的名字都来自一次真实的"第一次 Pull Request"。

正如 README.eg.md 开篇所强调的:开始任何新项目时出错是正常的,开源协作的本质是团队合作与给予;这个项目的目的就是把"第一次贡献"这条路尽量铺平,让你在不会造成破坏的环境里放心练习——犯错没关系,关键是能从错误中学习。

前置准备:安装 Git

整个流程的第一步是确保你的机器上装有 Git。如果尚未安装,请先完成 Git 的安装与基础配置(包括设置用户名和邮箱,后续提交会用到)。

补充:如何确认安装成功?在终端执行git --version,能看到版本号即表示可用。

第一步:Fork 这个仓库

在仓库页面顶部点击Fork按钮,即可把当前仓库复制一份到你自己的 GitHub 账户下。这一步与普通复制不同:Fork 出来的副本与上游仓库之间保留着关联关系,后续既可以基于它发起 Pull Request,也可以随时从上游拉取更新。

Fork 是 GitHub 开源协作模型的基础:你无法直接向别人的仓库推送代码,但可以在自己的副本上随意修改,再通过 Pull Request 把改动"申请"合并回去。

第二步:Clone 仓库到本地

Fork 完成后,进入你自己账户下的副本仓库:

  1. 点击Code按钮;
  2. 复制仓库地址(原文档建议复制 HTTPS 链接到剪贴板);
  3. 打开终端,执行:
git clone "url you just copied"

"url you just copied"替换为你刚复制的地址,例如:

git clone https://github.com/this-is-you/first-contributions.git

其中this-is-you是你的 GitHub 用户名。这个命令会把仓库的全部内容下载到本地,之后你就可以自由地在本地修改它了。

提示:推荐使用 SSH 地址(形如git@github.com:this-is-you/first-contributions.git)而非 HTTPS 地址,可以避免后续推送时的认证问题,详见下文"推送报错排查"。

第三步:创建分支

先进入刚才克隆下来的项目目录:

cd first-contributions

为了让改动独立、可追溯,不要在main主分支上直接修改,而是创建一个专属分支:

git checkout -b "add-your-name"

your-name替换成你的名字,例如:

git checkout -b "add-alonzo-church"

分支名的建议格式是add-<你的名字>,这样维护者一眼就能看出这个分支的目的。创建分支的同时-b参数会帮你切换到新分支。

补充:较新版本的 Git 也支持更现代的git switch -c <分支名>命令,二者效果等价;主 README(README.md)中即采用git switch写法。若你的 Git 版本较旧(提示switch不是有效命令),回退使用git checkout -b即可。

第四步:修改文件并提交

4.1 编辑 Contributors.md

用你喜欢的文本编辑器打开 Contributors.md,在名单中间任意位置加入你的名字(建议格式为- 你的名字),然后保存文件。

4.2 用 git status 查看改动

回到终端,执行:

git status

该命令会列出当前工作区的所有改动。你会看到Contributors.md出现在"修改"列表中——这是 Git 告诉你有文件被改动了。

4.3 用 git add 暂存改动

git add Contributors.md

git add把改动放入暂存区(staging area),表示"我确认要提交这些改动"。

4.4 用 git commit 提交

git commit -m "Add <your-name> to Contributors list"

<your-name>替换成你的名字。-m后面是提交信息(commit message),它是对这次改动的简短说明。提交之后,这条改动就正式记录在了你刚才创建的分支上。

第五步:推送改动到 GitHub

本地提交完成后,需要把分支推送到你在 GitHub 上的 Fork 仓库:

git push origin "add-your-name"

add-your-name替换成你创建的分支名。origin是你本地仓库对 GitHub 副本仓库的默认远程名称。

补充:若希望将本地分支与远程分支建立跟踪关系(后续推送可简写为git push),可使用git push -u origin <分支名>,这也是主 README 采用的方式。

推送报错排查:Authentication Error

推送时报错是新手最常遇到的问题,典型报错如下:

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/'

原因:GitHub 已于 2021 年 8 月 13 日起移除了 HTTPS 协议下的密码认证,改为要求使用个人访问令牌(Personal Access Token)或 SSH 密钥。

解决方案(推荐):生成一对 SSH 密钥并添加到你的 GitHub 账户(在账户设置的 SSH Keys 区域添加公钥)。配置完成后,Git 会通过 SSH 完成认证,推送不再弹出账号密码提示。

验证远程地址:推送前可用以下命令确认你推送的目标是否正确:

git remote -v

正常输出应形如:

origin https://github.com/your-username/your_repo.git (fetch) origin https://github.com/your-username/your_repo.git (push)

如果地址不对(例如指向了别人的仓库),可以用下面的命令把远程地址切换为 SSH 形式:

git remote set-url origin git@github.com:your-username/your_repo.git

第六步:提交 Pull Request

推送成功后,回到你在 GitHub 上的仓库页面,会看到一个新的Compare & pull request按钮(在你发起 Pull Request 之前它不会出现)。点击它,然后确认提交内容,点击创建 Pull Request。

Pull Request(简称 PR)本质上是把你分支上的改动申请合并到上游仓库,并交给仓库维护者审查。在 first-contributions 项目中,维护者会审查你的 PR 并把你的名字合并进 Contributors.md;合并完成后,你会收到一封通知邮件。

第七步:合并之后——保持 Fork 与上游同步

一个容易被忽略的细节是:你的 PR 被合并后,你自己账户里的 Fork 副本并不会自动包含这次合并。为了让本地仓库和 Fork 跟上上游进度,需要用到 Git 的"三角工作流"(Triangle Workflow),它涉及三个仓库:

  • 上游公共仓库(firstcontributions 官方仓库);
  • 你账户下的 Fork 仓库;
  • 你本地机器上的仓库。

同步的完整命令序列如下(详见 keeping-your-fork-synced-with-this-repository.md):

git status # 确认当前在 main 分支 git checkout main # 若不在 main,先切换过去 git remote add upstream https://github.com/firstcontributions/first-contributions.git git fetch upstream # 拉取上游的最新提交 git rebase upstream/main # 把上游提交合并到本地 main git push origin main # 再把本地 main 推送到你的 Fork

如果你希望"拉取 + 合并"一步完成,也可以直接执行:

git pull upstream main

此后,每当 GitHub 提示你"落后于上游若干提交"时,重复上述步骤即可让三个仓库保持一致。

常见进阶场景:提交后的修正

第一次贡献流程走完后,你可能会遇到"提交完了才发现有问题"的情况,以下是仓库内配套文档给出的标准解法:

场景操作参考文档
提交信息写错 / 漏改了内容git commit --amend -m "新提交信息",然后重新git pushamending-a-commit.md
需要修改已推送到远程的提交amend 后需强制推送git push --force(更安全的是git push --force-with-lease,避免覆盖他人改动)amending-a-commit.md
合并分支时出现冲突git status找出冲突文件,手动编辑去除<<<<<<<=======>>>>>>>标记,git add后重新git commitresolving-merge-conflicts.md
查看提交历史git log,可配合-n 5限制条数、--all <文件名>查看某文件的提交记录check-commit-log.md
撤销已推送的提交使用git revert(详见文档)reverting-a-commit.md
把多个提交合并成一个交互式变基git rebase -i(详见文档)squashing-commits.md

注意:对已推送到远程的提交做 amend 会使本地与远程历史分叉,此时强制推送会覆盖远程上他人的改动,务必谨慎;优先使用--force-with-lease保护团队协作成果。

继续前进:进阶资料与图形化工具

完成本次练习后,你可以通过以下仓库内资料继续深化:

  • Git 进阶技巧合集:additional-material.md 汇总了修改提交、配置 Git、同步 Fork、移动提交、删除文件/分支、解决合并冲突、撤销提交、压缩提交、.gitignore与凭据存储等十余个专题文档;
  • CLI 教程:github-cli-tutorial.md 演示如何用 GitHub 官方命令行工具(gh repo fork等)完成全部流程;
  • GUI 工具教程:如果不习惯命令行,仓库还提供了多种图形化工具的教程,可直接跳转学习:
    • GitHub Desktop
    • Visual Studio 2017
    • GitKraken
    • Visual Studio Code
    • Sourcetree
    • IntelliJ IDEA

此外,README.eg.md 还提到:完成首次贡献后可以庆祝并分享你的成果,也可以参考项目提供的"带简单 issue 的项目清单"去真实开源项目中继续实践——这时你已经具备了独立完成一次贡献的全部技能。

总结:一条可复用的贡献工作流

回顾全文,你实际掌握的是开源协作中最核心、最高频的一条工作流:

Fork 上游仓库 → Clone 到本地 → 创建功能分支 → 修改文件 → git add 暂存 → git commit 提交 → git push 推送 → 发起 Pull Request → 合并后同步 Fork

这条链路在 first-contributions 中反复被验证:仓库中 Contributors.md 里数千条来自世界各地贡献者的名字,就是这条工作流被真实执行过的最好证明。把它练熟,你就拥有了参与任何开源项目的入场券。

【免费下载链接】first-contributions🚀✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询