尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
first-contributions 开源新手指南:从 Fork 到首个 Pull Request 的完整 Git 实战
first-contributions 开源新手指南从 Fork 到首个 Pull Request 的完整 Git 实战【免费下载链接】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 → 同步上游全流程。读完本文你将能够独立在 GitHub 上完成一次真实的开源贡献掌握 fork 工作流中所有关键 Git 命令的用法、含义与常见坑位并了解如何在贡献合并后让本地仓库与远程主仓库保持同步。first-contributions 是一个专门为开源初学者设计的练习仓库项目本身不做任何业务功能只包含一份需要填上自己名字的 Contributors.md 名单文件目前已积累数千条贡献记录。它的核心价值在于——你可以在一个真实、活跃、有真人维护者审核 PR 的仓库里零风险地走完开源贡献的完整链路。教程刻意强调犯错误是被预期且被允许的维护者会帮你指出并修正错误这正是练习的意义所在。前置准备安装并初始化 Git教程假定你已具备 GitHub 账号。如果你的机器上还没有安装 Git需要先完成安装安装后可在终端执行git --version验证。在正式开始前建议先确认 Git 知道你是谁因为每一次git commit都会把提交与一个名字和邮箱绑定。首次执行git commit时如果没有配置身份Git 会给出类似提示并直接中止提交$ git commit *** Please tell me who you are. Run git config --global user.email youexample.com git config --global user.name Your Name to set your accounts default identity. Omit --global to set the identity only in this repository.按提示完成全局身份配置参考仓库内的 configuring-git.mdgit config --global user.email youexample.com git config --global user.name Your NameGit 配置存在三级作用域优先级为命令行参数 仓库级 全局全局配置--global作用于本机所有仓库省略--global则只对当前仓库生效例如用公司邮箱提交工作项目临时单次生效可用git -c user.name... -c user.email... commit ...。此外core.editor提交信息编辑器、color.ui输出着色等选项也通过同样的git config机制配置。第一步Fork 仓库把项目复制到你的账号下Fork 是 GitHub 提供的一种账号级复制点击本仓库页面右上角的Fork按钮就会在你自己的 GitHub 账号下生成一份独立的仓库副本。这个副本归你所有你可以随意修改、删除、推送而不影响原始仓库。Fork 之所以是开源协作的基石是因为它形成了开源社区典型的三角工作流Triangle Workflow上游公共仓库upstream→ 你的 forkorigin→ 你的本地仓库三者之间的流转方向见仓库内的 keeping-your-fork-synced-with-this-repository.md 说明。由于外部贡献者没有上游仓库的写权限只能通过改自己的 fork → 提 Pull Request → 维护者审核合并的方式把改动汇入上游。第二步Clone 仓库把 fork 拉到本地Fork 完成后进入你自己账号下的first-contributions仓库页面点击Code按钮复制仓库地址HTTPS 或 SSH 均可。然后打开终端执行克隆git clone url you just copied把url you just copied替换为刚才复制的地址。例如如果 GitHub 用户名为this-is-yougit clone https://github.com/this-is-you/first-contributions.git克隆完成后本地会出现一个first-contributions/目录内含与 GitHub 上完全一致的文件快照之后的所有修改都在这份本地副本上进行。提示clone 下来的仓库其默认远程仓库名会被 Git 命名为origin指向你自己的 fork。可用git remote -v查看当前配置的远程地址这个命令在后续排查推送问题时非常有用。第三步创建专属分支隔离你的改动进入项目目录并创建一个新分支cd first-contributions git checkout -b add-your-name将add-your-name换成有意义的、能标识你自己的分支名。教程给出的示例git checkout -b add-alonzo-churchgit checkout -b 分支名是创建分支并立即切换过去的合并写法较新版本的 Git 也支持等价命令git switch -c 分支名英文原版 README.md 即采用git switch写法。如果执行git switch报错提示 switchis not a git command说明 Git 版本过旧改用git checkout -b即可。分支是 Git 协作的核心机制它让你的改动与主分支本仓库当前默认分支为main完全隔离即使改坏了也不会影响他人还可以同时并行开展多项工作。第四步修改文件并提交用任意文本编辑器打开 Contributors.md在文件中间任意位置刻意不要加在开头或结尾这是为了降低多人在同一区域改动的冲突概率添加你的名字然后保存。回到终端执行git status会看到 Git 检测到Contributors.md发生了变化。接下来把改动加入暂存区并提交git add Contributors.mdgit commit -m Add your-name to Contributors list把your-name替换为你的真实名字。这两个命令各司其职git add把文件改动加入暂存区staging area即准备提交的内容清单git commit -m把暂存区内容固化为一次提交commit-m后是提交信息用于向协作者说明这次改动做了什么。开源项目中清晰、规范的提交信息是良好协作的基本素养。第五步推送分支到 GitHub使用git push把本地分支推送到你的 forkorigin 远程git push origin add-your-name把add-your-name替换为第三步创建的分支名。推送到 fork 后改动进入你账号下的远程仓库但此时原始仓库上游还看不到任何变化。推送常见问题认证失败。如果推送时报错remote: Support for password authentication was removed on August 13, 2021. fatal: Authentication failed for https://github.com/your-username/first-contributions.git/说明你仍在用密码方式认证而平台已不再支持。解决办法是改用 SSH 密钥或个人访问令牌PAT认证。若git remote -v显示的远程地址是 HTTPS 形式可以切换为 SSH 形式git remote set-url origin gitgithub.com:your-username/your_repo.git第六步提交 Pull Request把改动交给维护者审核推送成功后打开你账号下的 fork 仓库页面GitHub 会醒目地出现Compare pull request按钮点击它进入 PR 创建页面填写说明后提交 Pull Request。PR 是开源协作的正式申请单它向维护者表明我 fork 了你的项目、做了如下改动请审核并合并。维护者审核通过后会把你的改动合并进上游主分支并发送邮件通知你。这也是开源社区代码质量得以保障的关键环节——每一行进入主分支的代码都经过人工 review。第七步贡献合并后同步你的仓库PR 合并后你自己的 fork 和本地仓库并不会自动获得这些改动需要手动同步。完整流程如下。首先切回主分支并确认当前状态git checkout main然后把上游公共仓库注册为一个名为upstream的远程git remote add upstream https://github.com/Roshanjossey/first-contributions这条命令告诉 Git在指定的 URL 上还存在该项目的另一个版本我们叫它upstream。注意仓库官方文档 keeping-your-fork-synced-with-this-repository.md 中登记的上游地址为https://github.com/firstcontributions/first-contributions.git以你实际 fork 的上游仓库为准即可。接着拉取上游的最新改动git fetch upstreamgit fetch会把upstream远程的所有最新提交下载到本地但不会改动你当前的工作分支。随后把上游主分支的改动应用到你的主分支git rebase upstream/maingit rebase会把你的主分支重放到上游最新提交之上使本地主分支与上游保持一致。最后把同步后的主分支推送回你的 forkgit push origin main注意这里的推送目标是名为origin的远程你的 fork。如果想一步到位同时完成拉取与合并也可以直接用git pull upstream main同步并非一次性的只要 GitHub 提示你的 fork a few commits behind落后若干提交就应重复上述步骤。这套三角工作流上游 → fork → 本地再回流是所有 GitHub 开源项目协作的通用模式。进阶学习与配套资源完成上述流程你就已经跑通了开源贡献中最核心的fork → clone → edit → pull request标准工作流。first-contributions 仓库还整理了更深入的进阶资料供你继续打磨 Git 技能additional-material.mdGit 进阶技巧索引涵盖修改最近一次提交amending-a-commit、解决合并冲突resolving-merge-conflicts、合并提交squashing-commits、撤销本地提交undoing-a-commit、删除分支removing-branch-from-your-repository、.gitignore的创建与作用creating-a-gitignore-file等十余个专题configuring-git.mdGit 身份与常用配置的完整说明keeping-your-fork-synced-with-this-repository.mdfork 同步与三角工作流的原理图解。如果你不习惯命令行仓库还提供了多种 GUI 工具教程路径均以仓库根目录为起点可直接继续阅读GitHub Desktop 教程Visual Studio Code 教程Visual Studio 2017 教程GitKraken 教程Sourcetree (macOS) 教程IntelliJ IDEA 教程注本文关联的 阿拉伯语版教程 属于多语言翻译体系的一部分全部语言版本可通过 Translations.md 索引访问。【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

OpenDesign 设计系统溯源与 Token 契约:Expo 包 source/evidence 机制全解析

OpenDesign 设计系统溯源与 Token 契约:Expo 包 source/evidence 机制全解析

OpenDesign 设计系统溯源与 Token 契约:Expo 包 source/evidence 机制全解析 【免费下载链接】open-design 🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. &#x1f5…

📅 2026/9/19 22:03:51
2025年科目一题库高效刷题:五域拆解与本地结构化复习法

2025年科目一题库高效刷题:五域拆解与本地结构化复习法

简介:2025最新驾照C1证科目一必考题库附含答案,一套面向C1证考生、聚焦理论考试核心考点的便携复习资料。资源以docx文档形式收录科目一选择题与判断题,答案直接附于题后,便于考生进行自我检测与系统记忆,尤其适合备考…

📅 2026/9/19 22:03:51
从源码编译Aseprite中文版:像素画软件汉化实战指南

从源码编译Aseprite中文版:像素画软件汉化实战指南

1. 为什么我要自己动手做像素画软件的汉化第一次接触像素画是在做独立游戏的时候,美术资源全靠自己画。当时试了一圈工具,最后锁定了 Aseprite——它的动画帧管理、洋葱皮、调色板索引这些功能,对做像素风游戏来说几乎是量身定做的。但问题也…

📅 2026/9/19 22:03:51
MORE NEWS

更多资讯

📰

训练时报 401 读不到数据集?TaoToken 这样填 OpenClaw 的 Base URL

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

📰

多平台图片批量适配:从Amazon到TikTok Shop的母版图库与批处理流程

同一批商品要同时上架 Amazon、Temu、TikTok Shop,很多卖家第一步就卡在图片上。三个平台的规则差异大,但又不是大到需要完全重新拍摄的程度。我自己的做法是:建立一套“母版图库 分平台适配”的流程,把图片处理从“每上一个平台…

📰

Unity AssetBundle解包全攻略:结构解析、工具实操与代码提取

1. AssetBundle解包,到底在解什么我刚接触Unity AssetBundle解包时,想法很简单:把游戏里的角色模型、贴图、动画、音频一股脑儿抠出来,看看别人是怎么做的。后来做得多了才发现,解包这个动作背后能解决的问题&#xff…

📰

Hugo 页面方法 WordCount:深入理解字数统计与 CJK 处理规则

Hugo 页面方法 WordCount:深入理解字数统计与 CJK 处理规则 【免费下载链接】hugo The world’s fastest framework for building websites. 项目地址: https://gitcode.com/gh_mirrors/hu/hugo WordCount 是 Hugo 页面对象(Page)提供…

📰

TiXL 中 AfterGlow2 算子实战指南:为运动画面打造可调余辉拖影效果的完整解析

音视频图形学桌面应用 【免费下载链接】t3 TiXL is an open source software to create realtime motion graphics. 项目地址: https://gitcode.com/GitHub_Trending/t3/t3 点击查看 免费下载 AfterGlow2 是 TiXL 实时动态图形软件中 Lib.image.fx.feedback 反馈效…

📰

BrewUI:macOS原生Homebrew图形界面,SwiftUI深度集成方案

1. BrewUI 是什么?一个 macOS 原生、可交互的 Homebrew 图形界面,不是“替代品”,而是“放大器”BrewUI 这个名字一出来,很多人第一反应是:“Homebrew 不是命令行工具吗?怎么突然有 UI 了?”——…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬