AtomGit 新手教程:Issue 和 PR 是什么?从 Fork、Clone 到提交 Pull Request 全流程

AtomGit 新手教程:Issue 和 PR 是什么?从 Fork、Clone 到提交 Pull Request 全流程

本文面向刚接触 Git、AtomGit 和开源协作的同学,介绍 Issue、PR、Fork、Clone、Commit、Push 的区别,并完整演示如何提交一个 Issue 和 Pull Request。

示例项目:

https://atomgit.com/XJ-Cyber/text-one

这是一个测试项目,可以用来练习提交 Issue 和 PR。


一、Issue 和 PR 分别是什么?

1. Issue:用于记录和跟踪问题

Issue 可以翻译为"议题"或"问题单"。在代码托管平台中,它是一条可以持续讨论和跟踪的项目记录。

Issue 常见用途包括:

  • 报告 Bug;
  • 询问项目的使用方法;
  • 提出新功能建议;
  • 记录文档改进项;
  • 拆分和跟踪开发任务。

因此,Issue 不只是"提问"。它也可以是一条需求、一项任务或一个 Bug 报告。

2. PR:请求项目合并自己的修改

PR 是 Pull Request 的缩写,通常译为"拉取请求"或"合并请求"。

提交 PR 的含义是:

我已经完成了一组代码或文档修改,请项目维护者审查这些修改,并决定是否合并到目标分支。

PR 中通常包含:

  • 修改了哪些文件;
  • 每一行具体发生了什么变化;
  • 为什么要进行这些修改;
  • 相关人员的审查意见;
  • 自动测试或人工检查结果。

提交 PR 后,项目维护者可以同意、评论、要求继续修改或拒绝。只有 PR 被正式合并后,修改才会进入原项目。

3. Issue 与 PR 的区别

对比项 Issue PR
核心作用 记录问题、建议或任务 请求审查并合并修改
是否必须修改文件
主要内容 问题描述和讨论 代码或文档差异、提交记录和讨论
最终状态 关闭 合并或关闭
两者关系 可以被 PR 解决 可以关联对应的 Issue

Issue 和 PR 不要求同时存在。简单的错别字可以修改后直接提交 PR;复杂问题则适合先提 Issue,讨论清楚后再提交 PR。

如果一个 PR 用于解决 Issue #12,可以在 PR 描述中写:

text 复制代码
Closes #12

平台支持自动关联时,PR 合并后,对应 Issue 会自动关闭。


二、Fork、Clone、Commit 和 Push 的区别

新手提交 PR 时,最容易在下面几个概念之间混淆。

名称 发生位置 作用
Fork AtomGit 网站 将原仓库复制到自己的账号下
Clone 本地电脑 将远程仓库下载到本地文件夹
Commit 本地 Git 仓库 保存一次带说明的版本记录
Push 本地到远程 将本地提交上传到远程仓库
PR AtomGit 网站 请求原项目合并自己的修改

需要特别注意:

Fork 得到的是自己账号下的远程仓库;Clone 得到的是电脑里的本地仓库。

完整流程如下:

text 复制代码
原项目
  ↓ Fork
个人账号下的仓库
  ↓ Clone
电脑中的本地仓库
  ↓ 修改、Commit、Push
个人账号下的仓库
  ↓ 提交 PR
原项目审查并合并

三、AtomGit 提交 PR 的完整步骤

步骤 1:Fork 原项目

打开原项目页面,点击 Fork

选择自己的个人空间,确认创建 Fork。

操作完成后,自己的账号下会出现一份同名仓库。

Fork 后的仓库归自己管理,可以在其中创建分支和推送修改,但它不是原仓库本身。

步骤 2:同步源项目

如果原仓库已经有了新的提交,建议在开始修改前先同步。

在个人 Fork 的页面中点击"同步源项目",将原仓库的最新修改同步过来。

同步可以降低代码冲突的概率,但不能保证一定没有冲突。多人同时修改同一文件的相同位置时,仍然可能需要手动处理冲突。

步骤 3:Clone 个人 Fork 到本地

进入自己的 Fork 仓库,复制克隆地址。

打开终端,进入准备保存项目的目录:

bash 复制代码
cd ~/Desktop
git clone <你的 Fork 仓库地址>
cd text-one

例如:

bash 复制代码
git clone https://atomgit.com/你的用户名/text-one.git

请将示例地址替换为自己的真实仓库地址。

步骤 4:创建独立分支

推荐为每一项修改创建一个单独分支:

bash 复制代码
git switch -c docs/issue-pr-guide

分支名应尽量表达修改目的,常见示例:

text 复制代码
docs/update-readme
fix/login-button
feature/dark-mode

如果本机 Git 版本较旧,不支持 git switch,可以使用:

bash 复制代码
git checkout -b docs/issue-pr-guide

步骤 5:修改并检查文件

使用编辑器打开项目,完成代码或文档修改。本示例新增了 Issue和PR说明.txt

先查看当前修改:

bash 复制代码
git status
git diff

确认修改内容正确后,再执行提交命令。

步骤 6:Commit 并 Push

执行以下命令:

bash 复制代码
git add -- 'Issue和PR说明.txt'
git diff --cached --check
git commit -m "docs: add Issue and PR explanation"
git push -u origin docs/issue-pr-guide

各命令的作用如下:

命令 说明
git add -- 'Issue和PR说明.txt' 将指定文件加入暂存区
git diff --cached --check 检查暂存内容中的空白符等格式问题
git commit -m "..." 创建本地提交并填写提交说明
git push -u origin ... 将当前分支首次推送到个人远程仓库

原示例直接执行 git push origin main 也可以把个人 Fork 的 main 推送到远程,但不建议长期这样操作。使用独立分支可以让不同任务互不干扰,PR 的修改范围也更清晰。

推送完成后,个人仓库中可以看到新增或修改的文件。

步骤 7:创建 Pull Request

进入 PR 页面,选择创建新的 PR。

选择分支时重点检查:

text 复制代码
源仓库:自己的 Fork 仓库
源分支:docs/issue-pr-guide
目标仓库:原项目仓库
目标分支:main

源和目标选反,会导致 PR 方向错误。确认后点击下一步。

步骤 8:填写 PR 描述

PR 标题应简洁说明修改内容,例如:

text 复制代码
docs: 新增 Issue 和 PR 入门说明

正文可以使用下面的模板:

markdown 复制代码
## 修改内容

新增 Issue 和 PR 的入门说明文档。

## 修改原因

帮助第一次参与项目协作的同学理解基本流程。

## 验证方式

- 已检查文档内容
- 已检查排版和文件名

## 关联 Issue

Closes #12

没有对应 Issue 时,可以删除"关联 Issue"部分,直接提交 PR。

步骤 9:等待审查和合并

创建成功后,PR 会进入待审查状态。

维护者可以查看文件差异、提交记录和讨论内容。如果维护者要求修改,不需要关闭 PR。继续在原分支修改并执行 commitpush,新的提交通常会自动出现在同一个 PR 中。

项目所有者或拥有权限的维护者可以执行合并。

显示"已合并",代表修改已经进入原项目。

返回原仓库,可以看到合并后的文件。


四、AtomGit 提交 Issue 的完整步骤

步骤 1:进入原项目的 Issue 页面

与原项目有关的问题,一般应提交到原项目,而不是自己的 Fork 仓库。

步骤 2:填写 Issue

点击新建 Issue,填写标题和正文。标题需要准确概括问题。

不推荐的标题:

text 复制代码
运行不了
项目报错
求帮助

推荐的标题:

text 复制代码
Windows 11 下执行 npm install 时提示 EACCES
README 中缺少 Python 版本要求
建议增加深色模式

Bug 类 Issue 可以使用下面的模板:

markdown 复制代码
## 问题描述

简要说明遇到的问题。

## 复现步骤

1. 执行了什么操作
2. 输入了什么命令
3. 在哪一步出现问题

## 实际结果

粘贴完整报错信息或添加截图。

## 预期结果

说明正常情况下应该发生什么。

## 运行环境

- 操作系统:Windows 11
- 软件版本:Node.js 22.x
- 项目版本或提交:main / commit id

标签可以帮助维护者分类,但通常不是必填项。不确定选什么时,可以先不添加。

步骤 3:提交并继续跟进

提交完成后,Issue 会出现在问题列表中。

后续需要关注维护者的回复。如果对方要求补充日志、版本号或复现步骤,应尽量在原 Issue 中继续回复,避免重复创建多个相同问题。


五、常见问题

1. 提交 PR 前必须先提 Issue 吗?

不必须。复杂修改适合先提 Issue 讨论;简单、明确的修复可以直接提交 PR。具体以项目的贡献指南为准。

2. PR 提交后还能继续修改吗?

可以。在创建 PR 的源分支中继续提交并 Push,新的提交会更新到原 PR 中。

3. 为什么我没有合并按钮?

普通贡献者通常没有向原项目执行合并的权限。合并操作由项目所有者或维护者完成。

4. 如何减少代码冲突?

修改前同步原项目;一个分支只处理一项任务;尽量避免无关格式化;不要在一个 PR 中混入多个不相关功能。

5. Issue 提交后没人回复怎么办?

先检查问题描述是否完整,也要考虑维护者可能没有及时处理。可以在合理时间后补充一次信息,但不要频繁重复催促或创建相同 Issue。


六、流程总结

提交 PR 的标准流程:

text 复制代码
Fork → 同步源项目 → Clone → 创建分支 → 修改文件
→ git add → git commit → git push → 创建 PR → 审查 → 合并

提交 Issue 的标准流程:

text 复制代码
进入原项目 → 打开 Issue 页面 → 填写标题和正文
→ 提交 → 补充信息和参与讨论 → 问题解决后关闭

对于第一次练习的同学,建议先完成两个小任务:提交一个描述清楚的 Issue,再修改一个错别字并提交 PR。完整操作一次后,这些概念会比单独背定义更容易理解。


推荐标签: GitAtomGitPull RequestIssue开源Git教程

相关推荐
烟锁池塘柳03 天前
Windows11系统的计算机更新BIOS到最新版本的操作方法
计算机·硬件·bios
AI小码4 天前
如何让AI帮你构建项目?七级方法
人工智能·算法·计算机·ai·程序员·大模型·编程
程序员鱼皮12 天前
小红书爆了!中美程序员疯狂对账
计算机·程序员·互联网·编程经验
微学AI12 天前
把 GitHub Issue 的“第一轮脏活”交给 AI:Issue AI Agent 接入蓝耘元生代实战
人工智能·github·issue
郝学胜-神的一滴15 天前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
技术传感器15 天前
让 Hermes 自动完成一个软件需求:从 Issue 到 PR 的 AI 开发流水线
人工智能·架构·aigc·需求分析·issue
瑞码空间18 天前
Python爬虫进阶实战笔记
开发语言·python·计算机·python爬虫
码字的特恩18 天前
微软确认暂不为 Windows 11 加入透明效果自定义功能,建议用户使用第三方工具
人工智能·windows·算法·microsoft·计算机·大模型·编程
云空18 天前
《软件专业完整学习路线图(本科4年+自学通用版,2026就业向)》
人工智能·科技·学习·计算机·编程·软件