十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

first-contributions 开源新手入门指南:从 Fork 到 Pull Request 的完整首次贡献流程

first-contributions 开源新手入门指南:从 Fork 到 Pull Request 的完整首次贡献流程 first-contributions 开源新手入门指南从 Fork 到 Pull Request 的完整首次贡献流程【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions本指南以 first-contributions 项目仓库README.ua.md 为蓝本为依托系统讲解初学者完成第一次开源贡献的标准流程fork → clone → 创建分支 → 修改提交 → push → Pull Request。无论你是否熟悉命令行读完本文都能亲手完成一次真实的开源贡献并掌握分支管理、远程仓库同步、冲突解决等后续进阶技能。项目背景为什么需要 first-contributionsfirst-contributions 是一个专门为开源新手设计的教学仓库。它的核心理念是与其让初学者一上来就面对复杂的真实项目不如先用一个低风险、高容错的练习仓库完整走一遍贡献流程建立信心与肌肉记忆。从仓库结构可以看到它的用心之处根目录的 Contributors.md 是练习的目标文件——贡献者的名字会被追加到这里当前已积累数千条贡献记录docs/translations/ 下提供了覆盖数十种语言的翻译版本索引见 Translations.md其中就包括本指南对应的乌克兰语原版docs/additional-material/ 与 docs/gui-tool-tutorials/ 则承载了从命令行进阶技巧到图形化工具的全部延伸教程。准备工作安装并配置 Git开始之前请确保你的机器上已安装 Git。如果你的系统尚未安装可以参考仓库内提供的安装文档如 Ubuntu 安装指南、Arch Linux 安装指南。安装完成后第一次执行git commit时 Git 会要求你声明身份提交记录必须关联作者git commit # *** Please tell me who you are. # git config --global user.email youexample.com # git config --global user.name Your Name按提示配置即可Git 支持三种作用域的配置方式详见 configuring-git.md全局配置推荐作用于所有仓库git config --global user.name Your Name git config --global user.email youexample.com仓库级配置省略--global仅作用于当前仓库适合工作项目与个人项目使用不同邮箱的场景git config user.email youalternate.com命令级配置通过-c临时指定仅对单条命令生效git -c user.nameYour Name -c user.emailyouexample.com commit -m message三者优先级为命令级 仓库级 全局。此外core.editor、commit.template、color.ui等也是常用的全局配置项可参考 configuring-git.md 深入了解。第一步Fork 仓库在 first-contributions 仓库页面的右上角点击fork按钮即可在自己的账号下创建一份该仓库的副本。Fork 的本质是在 GitHub 服务端复制一份仓库到你的账号名下它让你拥有独立的修改权限同时与原仓库上游保持关联——这正是后续 Pull Request 协作模式的基础。第二步Clone 仓库到本地Fork 完成后进入你自己账号下的first-contributions 副本点击cloneCode按钮再点击复制图标复制仓库地址。然后在终端中执行git clone 你刚复制的链接例如this-is-you替换为你的 GitHub 用户名git clone gitgithub.com:this-is-you/first-contributions.git这一步会把 GitHub 上的仓库内容完整复制到你的电脑本地从此你可以在本地自由编辑。第三步创建专属分支进入克隆下来的仓库目录cd first-contributions开源协作的核心规范之一是永远不要在主干分支上直接提交而是为每次改动创建独立的分支。创建并切换分支使用git checkout -b add-your-name例如git checkout -b add-petro-church分支名不强制包含add但用add-你的名字这种命名能清晰表达本次改动是添加某位贡献者的意图便于维护者审阅。新版 Git 也可使用等效的git switch -c 分支名主仓库 README 即采用该写法若提示switch不是有效命令说明 Git 版本过旧请改用git checkout -b。第四步修改文件并提交用任意文本编辑器打开根目录下的 Contributors.md把你的名字加入贡献者列表。注意不要加在文件开头或结尾插在任意中间位置即可。保存文件后进入项目目录执行git status你会看到Contributors.md出现在已修改modified状态中。接下来把改动加入暂存区staging areagit add Contributors.md然后提交commit把your-name替换为你的名字git commit -m Add your-name to Contributors list这一过程对应 Git 三区模型工作区编辑→ 暂存区git add→ 本地仓库git commit。只有进入本地仓库的改动才会被记录进版本历史。第五步推送分支到 GitHub提交只是写入了本地仓库还需要推送push到你在 GitHub 上的 fork才能发起 Pull Requestgit push -u origin your-branch-name把your-branch-name替换为你第三步创建的分支名如add-petro-church。其中origin是本地仓库对你 GitHub fork 的远程引用名-u--set-upstream会把本地分支与远程同名分支建立关联此后直接执行git push即可。常见的推送认证错误如果你使用的是 HTTPS 方式克隆推送时可能遇到如下报错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 日起移除了账号密码认证必须改用Personal Access Token个人访问令牌或SSH 密钥。处理步骤如下在 GitHub 账户设置中生成 Personal Access Token用它代替密码进行 HTTPS 推送或为你的账号生成并配置 SSH 密钥改用 SSH 方式连接若此前以 HTTPS 克隆可用如下命令检查远程地址git remote -v若输出为 HTTPS 形式的https://github.com/your-username/your_repo.git可切换为 SSH 形式避免反复输入凭据git remote set-url origin gitgithub.com:your-username/your_repo.git仓库内还提供了 storing-credentials.md 说明如何安全地持久化存储凭据涉及安全策略请务必遵循所在组织的规定。第六步提交 Pull Request推送成功后回到 GitHub 上你自己账号下的 fork 仓库页面会看到醒目的Compare pull request按钮点击它。GitHub 会展示你的分支add-your-name相对于 first-contributions 主仓库主干分支的差异确认无误后点击创建 Pull Request即完成提交。此时你的改动已进入维护者的评审队列维护者会将你的分支合并进主仓库主干分支合并完成后你会收到一封通知邮件。至此你已成功完成第一次开源贡献贡献完成之后进阶技能速览一次 PR 的合并只是起点。仓库在 docs/additional-material/ 中准备了完整的 Git 进阶教程强烈建议按需查阅1. 让 Fork 与上游保持同步三角工作流真实开源项目迭代很快你的 fork 会逐渐落后于主仓库。标准同步流程详见 keeping-your-fork-synced-with-this-repository.mdgit checkout main # 先切回主干分支 git remote add upstream 上游仓库地址 # 将原仓库注册为 upstream 远程 git fetch upstream # 拉取上游最新提交 git rebase upstream/main # 将本地主干变基到上游最新状态 git push origin main # 推送到你的 fork完成同步也可以一步到位git pull upstream main。这种上游仓库 → 本地 → 你的 fork的三方协作模型是几乎所有开源项目的标准协作形态。2. 解决合并冲突当多个贡献者同时修改同一文件时Git 可能无法自动合并冲突会以、、标记的形式出现在文件中。解决流程详见 resolving-merge-conflicts.mdgit status # 定位 Unmerged paths 下的冲突文件 # 手动编辑冲突文件保留合理内容并删除冲突标记 git add filename # 逐个标记为已解决 git commit -m Resolved merge conflicts进阶可用git mergetool调用可视化合并工具或git merge --abort放弃合并。养成频繁git pull origin main、坚持功能分支开发的习惯能大幅减少冲突。3. 修改最近一次提交amend如果提交后发现漏了改动或提交信息写错可用git commit --amend重做最近一次提交详见 amending-a-commit.mdgit add 你的改动文件 git commit --amend -m 新的提交信息若该提交已推送到远程则需要强制推送覆盖git push --force更安全的做法是用git push --force-with-lease避免误覆盖他人改动。4. 压缩提交squash评审者常要求把功能分支上杂乱的多次提交合并为一条逻辑清晰的提交这需要交互式变基详见 squashing-commits.mdgit rebase -i HEAD~2 # 进入交互模式把范围扩大到最近 2 条提交在编辑器中把待合并的pick改为squash或s保存退出后即可把多条提交压成一条。5. 其他实用主题移除文件在提交前将文件移出版本控制撤销提交 与 回滚提交区分本地撤销与远程回滚创建 .gitignore 文件用.gitignore排除缓存、依赖、密钥等不应入库的文件Git 工作流场景总览上述全部进阶教程的索引如何为开源项目做贡献更宏观的贡献方法论。不想用命令行图形化工具教程一览对命令行不熟悉的读者仓库提供了完整的图形化工具教程在 docs/gui-tool-tutorials/ 目录下覆盖主流平台与工具工具教程适用场景GitHub Desktopgithub-desktop-tutorial.md官方桌面客户端跨平台Visual Studio 2017github-windows-vs2017-tutorial.mdWindows Visual StudioGitKrakengitkraken-tutorial.md可视化 Git 客户端Visual Studio Codegithub-windows-vs-code-tutorial.md最流行的编辑器之一内置 Git 支持Sourcetreesourcetree-macos-tutorial.mdmacOS / Windows 桌面客户端IntelliJ IDEAgithub-windows-intellij-tutorial.mdJava 生态集成开发环境总结本文完整走通了 first-contributions 的fork → clone → 分支 → 修改 → commit → push → Pull Request全流程。这套工作流是 GitHub 乃至整个开源世界的通用协作范式——你在这里练会的每一步都能直接迁移到任何真实开源项目中。完成首次提交后你还可以通过配套 Web 应用分享你的成果、从易上手 issue 项目清单中挑选下一个练习目标并持续阅读仓库中的进阶文档一步步成长为熟练的开源贡献者。【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表