news 2026/9/19 17:05:44

first-contributions 开源贡献实战:Windows 下用 Git Bash 完成你的第一次 Pull Request

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
first-contributions 开源贡献实战:Windows 下用 Git Bash 完成你的第一次 Pull Request

first-contributions 开源贡献实战:Windows 下用 Git Bash 完成你的第一次 Pull Request

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

本文基于 first-contributions 仓库的 Git Bash 命令行教程(乌克兰语版) 整理而成,面向在 Windows 上首次参与开源贡献的开发者。读完本文,你将掌握一条完整的fork → clone → edit → PR实战链路:从 Fork 仓库、用 Git Bash 克隆与建分支,到修改 Contributors.md、提交并推送变更,最后发起 Pull Request 并被合并——全程使用命令行,无需任何图形界面工具。

为什么选择 Git Bash 完成第一次贡献

第一次做某件事总是困难的,尤其是在团队协作场景下,犯错往往让人不适。而开源的本质恰恰是协作与共同成长。阅读文章和观看视频教程有用,但没有什么比"亲自上手操作、且不用担心搞砸"更有效。first-contributions 项目正是为此而生:它把真实开源项目的协作流程搬进一个安全可控的练习场,让新手在 Contributors.md(一个已积累数千名贡献者名单的文件)中加上自己的名字,就能完整体验一次真实的开源贡献流程。

对 Windows 用户而言,Git Bash是运行 Git 命令的首选环境:它以 Windows 原生程序的方式提供类 Unix 的终端体验,内置cdls等常用命令,并允许直接在终端中调用git系列命令,让新手以纯命令行方式走完全部流程。Git Bash 教程位于仓库的 cli-tool-tutorials 目录 下,与 GitHub Desktop、VS Code、GitKraken 等图形工具教程并列,是"从命令行入门 Git"的标准路线。

前置准备:在 Windows 上安装 Git Bash

如果你尚未安装 Git Bash,需要先前往 Git 官方站点下载 Windows 安装包并完成安装。安装完成后,在开始菜单中搜索并打开Git Bash,你将看到一个类 Unix 风格的终端窗口,可在此输入所有后续命令。

注意:教程中的命令均针对 Git Bash 环境编写。若使用 Windows 自带的 CMD 或 PowerShell,部分命令行为(如路径处理、输出样式)会有所差异,建议新手严格按 Git Bash 环境执行。

第一步:Fork 这个仓库

Fork(复刻)是开源协作的第一步。打开 first-contributions 仓库页面,点击页面右上角的 Fork 按钮,系统会在你的个人账户下创建一份该仓库的完整副本。

为什么必须 Fork?因为你没有权限直接修改他人仓库,Fork 创建了你自己的远程副本,之后你可以自由地在这份副本上修改、提交,再通过 Pull Request 将改动"反向"合并回原仓库。这条规则是后续所有步骤的前提——千万不要直接在原始仓库上操作

第二步:克隆仓库到本地

Fork 完成后,你需要在本地机器上得到一份仓库的拷贝,这个动作称为 clone(克隆)。

  1. 进入你自己的 fork 页面(而非原始仓库),点击页面上的Code按钮,复制弹出的仓库地址。请注意:不要克隆原始仓库,一定要复制自己 fork 的地址,否则后续推送将没有权限。
  2. 打开 Git Bash,先进入你希望存放项目的目录。Git Bash 启动后默认位于用户主目录,使用cd命令切换到目标文件夹(如cd Documents/projects):
cd <文件夹路径>
  1. 粘贴刚复制的仓库地址,执行克隆命令:
git clone <仓库地址>

执行后,Git Bash 会显示克隆进度,并在当前目录下生成一个与仓库同名的文件夹。

  1. 进入克隆下来的仓库目录,并用 VS Code 打开以便编辑:
cd <仓库目录名> code .

git clone还有一些常用形态,便于你在后续实践中扩展理解:

# 克隆时指定本地目录名 git clone <仓库地址> <本地目录名> # 只克隆指定分支(减少下载体积) git clone --branch <分支名> <仓库地址> # 克隆完成后查看远程仓库配置 git remote -v

git remote -v会列出本地与远程的关联关系,正常情况下应看到origin指向你的 fork 地址——这也是后续git push originorigin这个名称的来源。

第三步:创建分支(branch)

开源协作中,永远不要在主干分支上直接修改。你应当为自己的改动创建一条独立分支,这样即使改动有问题,也不会影响主分支的稳定性。

使用下面的命令创建并切换到新分支——这条命令不仅创建分支,还会同时切换到该分支

git checkout -b <分支名>

分支命名建议遵循<add-你的名字>的格式,例如add-james-smith。这样维护者一眼就能看出这个分支的用途和归属。

从命令原理上看,git checkout -b <name>等价于先执行git branch <name>(创建分支)再执行git checkout <name>(切换分支)。Git 2.23+ 也提供了语义更清晰的替代写法git switch -c <name>,二者效果一致,教程环境下的checkout -b写法兼容性最好。

第四步:做出修改并提交(commit)

现在到了"贡献"本身。用 VS Code(或其他文本编辑器)打开仓库根目录下的 Contributors.md,在文件末尾添加你的名字,然后保存。

该文件是一个纯文本名单,每一行遵循 Markdown 链接格式:

- [James Smith](https://github.com/jamessmith)

如果你叫 James Smith,就在文件末尾新增一行上面这样的内容——把James Smith换成你的名字,把jamessmith换成你的 GitHub 用户名。整个仓库的贡献者名单都是这种格式,新增时保持格式一致即可。

保存后,用下面的命令查看工作区状态,确认你做了哪些改动:

git status

输出会列出当前处于哪个分支、哪些文件被修改(modified)。看到 Contributors.md 出现在 modified 列表中,说明改动已被 Git 识别。

接下来把改动提交为一次 commit。Git 的提交分为两步:

第一步,把文件加入暂存区(staging area),明确告诉 Git"我要提交这个文件":

git add <文件名>

例如:git add Contributors.md。若想暂存全部改动,可执行git add .,但初学阶段建议精确指定文件,避免把无关改动一并提交。

第二步,生成带说明文字的提交记录

git commit -m "Add <你的名字> to Contributors list"

-m后面的字符串是提交信息,描述这次提交做了什么。本项目生态中,"Add XXX to Contributors list" 是贡献者名单提交的标准信息格式。

提交完成后,可以用下面的命令快速查看提交历史,确认你的提交是否成功:

git log --oneline

--oneline让每条提交只显示一行(提交哈希缩写 + 提交信息),输出按时间倒序排列,你最新的提交应出现在最顶部。若想查看更完整的信息(作者、日期、完整说明),可运行git log,仓库的 check-commit-log.md 文档对git log的常见变体(按提交范围过滤、按文件过滤、限制条数等)有更深入的讲解。

第五步:把改动推送到 GitHub

本地提交完成后,需要把分支推送到远程仓库(即你的 fork),这样才能在 GitHub 上发起 Pull Request。执行:

git push origin <分支名>

其中origin是远程仓库的默认别名(指向你的 fork),<分支名>是你第三步创建的分支名,例如git push origin add-james-smith。首次推送该分支时,命令会创建远程对应的分支并上传提交。

如果推送时希望将本地分支与远程分支建立跟踪关系(之后可直接用git push/git pull而无需重复指定远程与分支),可以加-u参数:

git push -u origin <分支名>

第六步:发起 Pull Request

推送成功后,回到 GitHub 上你的 fork 仓库页面,页面顶部会醒目地出现一个"Compare & pull request"按钮,点击它,进入 Pull Request 创建页面。

确认变更内容无误后,点击提交(submit)按钮,即完成了一次 Pull Request 的发起。之后,维护者会收到通知并审查你的改动;一旦你的分支被合并进项目主分支,你会收到一封邮件通知,宣告你的第一次开源贡献成功落地。

回顾:一条完整的 fork → clone → edit → PR 链路

至此,你已经走完了开源贡献的标准流程。把这条链路浓缩为一张命令清单,可随时回顾:

# 1. Fork:在 GitHub 网页上点击 Fork(无命令) # 2. Clone:把 fork 克隆到本地 cd <文件夹路径> git clone <你的-fork-地址> cd <仓库目录名> # 3. Branch:创建并切换分支 git checkout -b add-<你的名字> # 4. Edit & Commit:修改 Contributors.md 后提交 git add Contributors.md git commit -m "Add <你的名字> to Contributors list" git status # 提交前检查改动 git log --oneline # 提交后确认历史 # 5. Push:推送分支到远程 git push origin add-<你的名字> # 6. PR:在 GitHub 上点击 Compare & pull request 并提交

整套流程中,Git 的三个核心概念贯穿始终:工作区(你编辑的文件)、暂存区git add后的中间区域)、提交历史git commit生成的记录)。git status正是观察三者状态的窗口。

进阶:合并之后还能做什么

被合并只是开源之旅的起点。围绕本次贡献的体验,仓库还提供了大量进阶主题,见 additional-material.md(即教程末尾的"Додаткові матеріали / 附加材料"链接所指文档),其中包括:

  • 修改最近一次提交(amend):发现提交信息写错或漏改了文件时,如何修正尚未推送的提交;
  • 配置 Git 用户信息:设置user.nameuser.email,让提交记录正确署名;
  • 保持 fork 与上游同步:当原仓库有新提交时,如何把上游改动拉取回你的 fork;
  • 解决合并冲突:多人同时修改同一文件时,如何处理冲突标记;
  • 删除本地与远程分支 与 删除文件:PR 合并后的清理工作。

此外,如果你还想尝试其他工具路线,first-contributions 仓库在 README.md 的 "Tutorials Using Other Tools" 部分集中收录了 GitHub Desktop、VS Code、IntelliJ IDEA、GitKraken、Sourcetree 等多种工具的教程索引,可任选适合自己习惯的方式继续练习。

结语

这篇教程的价值不在于命令本身,而在于它让"第一次"变得没有风险:你可以在 Contributors.md 这样一个无关紧要的名单文件上,完整演练 fork、clone、branch、commit、push、Pull Request 的全部协作环节,同时确保不会对任何真实项目造成破坏。记住:心态越放松,学得越快。完成这一次贡献后,欢迎把同样的流程复用到任何你感兴趣的开源项目上。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 17:01:56

管理学试卷PDF的结构化解析与知识图谱构建

简介&#xff1a;本资源为湖南商学院管理学课程期末考试真题汇编&#xff0c;面向高校管理类专业本科生及备考学生&#xff0c;助力系统复习核心知识点、熟悉题型结构与应试节奏。试卷共两套&#xff08;A卷为主&#xff09;&#xff0c;涵盖选择题、名词解释、简答、论述及案例…

作者头像 李华
网站建设 2026/9/19 17:01:53

ESP32 BLE开发避坑指南:从VSCode配置到稳定通信的12个关键点

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

作者头像 李华
网站建设 2026/9/19 17:01:46

Codex CLI 登录 403 排查全指南:WSL/SSH/VS Code 场景拆解

Codex CLI 在 WSL 里跑得好好的&#xff0c;一到登录就翻车&#xff0c;终端里永远只有那一句&#xff1a;Token exchange failed: 403 Forbidden。第一次遇到的人基本都会去检查账号密码&#xff0c;其实账号一点问题没有&#xff0c;这串 403 是登录链路里某个环节断了的典型…

作者头像 李华
网站建设 2026/9/19 16:59:28

云端推理平台选型指南:平衡延迟、吞吐与成本

1. 先看懂延迟、吞吐量、成本这三个指标是怎么互相打架的1.1 从一次真实故障说起我做AI应用开发这些年&#xff0c;见过太多团队在MVP阶段跑得很顺&#xff0c;一上线就崩的例子。有个做智能客服的创业团队&#xff0c;模型用的开源7B&#xff0c;本地测试时单次对话响应500毫秒…

作者头像 李华
网站建设 2026/9/19 16:57:53

联合国联手谷歌打造AI数据系统,解决大模型数据准确率低难题

【导语&#xff1a;联合国与谷歌合作打造UN System Data Commons系统&#xff0c;将全球统计数据整理成AI可读取格式。该系统基于谷歌开源平台&#xff0c;支持MCP协议&#xff0c;能提升数据查询效率&#xff0c;解决大模型数据准确率低的问题。】新系统&#xff1a;让联合国数…

作者头像 李华