Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 68 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,85 @@
# code-contributing-practice

> 练习代码贡献中的 `fork` 、`pull request` 等操作
> 欢迎来到开源贡献练习场!本仓库旨在帮助你熟悉并掌握向开源项目贡献代码的标准流程,包括 fork、git branch、pull request (PR) 等核心操作

## 为仓库贡献代码应当怎么做?

- 注意阅读仓库的 `contributing.md` 文档,它通常位于仓库的根目录或 `docs` 文件夹下。
- 认领 issue
- 开始编码
- 创建 Fork 仓库或同步 Fork 仓库
- 创建或选定分支
- 提交代码
- 创建 Pull Request
- 在 PR 的描述部分中加上 `close #123` (假定你要完成的 issue 编号是 123 的话)

- 等待代码审查

### 1. 准备工作

- **阅读贡献指南**:在项目根目录找到并阅读 `CONTRIBUTING.md` 文件,了解代码规范。
- **认领 Issue**:找到或创建一个 `Issue`,评论表示你希望处理它,并等待分配。

### 2. 本地开发

1. **Fork 仓库**:点击原始仓库右上角的 `Fork` 按钮,复制一份到你的 GitHub 账号下。

2. **Clone 到本地**:
```bash
# 将 YOUR_USERNAME 替换为你的 GitHub 用户名
git clone [https://github.com/YOUR_USERNAME/code-contributing-practice.git](https://github.com/YOUR_USERNAME/code-contributing-practice.git)
cd code-contributing-practice
```

3. **创建特性分支**:**不要在 `main` 分支上直接修改。**
```bash
# 分支名应清晰并与任务相关,例如:fix/issue-123
git checkout -b feature/my-first-contribution
```

4. **(可选) 同步上游仓库**:在开始修改前,获取原始仓库的最新代码以避免冲突。
```bash
git remote add upstream [https://github.com/FrogDar/code-contributing-practice.git](https://github.com/FrogDar/code-contributing-practice.git)
git fetch upstream
git checkout main
git merge upstream/main
git checkout feature/my-first-contribution
git rebase main # 将你的分支变基到最新的 main 分支上
```

5. **修改与提交**:完成代码修改后,按照规范提交。
```bash
git add .
git commit -m "feat(records): add practice file for YOUR_NAME"
```

6. **推送至你的 Fork 仓库**:
```bash
git push origin feature/my-first-contribution
```

### 3. 创建 Pull Request (PR)

- **发起 PR**:在你的 Fork 仓库页面,点击 `Compare & pull request` 按钮。
- **填写描述**:
- **标题**:清晰概括你的修改。
- **关联 Issue**:在描述中写入 `close #123` (`123` 为对应的 Issue 编号),PR 合并后会自动关闭该 Issue。

### 4. 代码审查

- **等待审查**:维护者会对你的代码进行审查并提出修改意见。
- **更新代码**:若有修改,直接在本地的同一分支上继续 `commit` 和 `push`,PR会自动同步更新。
- **合并**:PR 被批准并合并后,你就完成了一次贡献!
## 练习

> 在练习中提交的内容没有限制,可以是在 `records` 文件夹下提交一个属于自己的 `.md` 文件,也可以是完善本仓库。
>
> 需要注意的是,练习失败的那些产物对于新手来说只能是删掉再来一次。当然你也可以通过提升自己的 git 水平,用一些奇淫巧技拯救此前错误的练习结果。

### 练习一

练习目标:完成第一次提交

注意事项:

- 创建一个 issue,标题命名为 `Ex1` 或 `ex1` 或 `练习1` 或 `练习一`,机器人会将它分配给你,成为你的专属练习 issue
- 记得查看 [`CONTRIBUTING.md`](https://github.com/FrogDar/code-contributing-practice/blob/main/CONTRIBUTING.md) 里的规范(比如 git message 要使用 [`angular` 规范](https://github.com/angular/angular/blob/main/CONTRIBUTING.md))
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个链接还是要保留的

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我意思是里面的链接,你都把对应的文本修改了,就不能直接把两个放在一起呀

你读读看,这合理吗?你得自己读一下

image

- 建议自己创建一个分支,并在分支上修改后提交 PR,具体做法和理由见练习二。

### 练习二
### 练习一:完成第一次贡献

练习目标:完成第二次提交
- **目标**:完整体验一次标准的 Fork & PR 流程。
- **步骤**:
1. 创建一个 Issue,标题为 `Ex1` 或 `练习一`,机器人会自动分配给你。
2. 严格遵循上述标准流程。
3. 遵守 [`CONTRIBUTING.md`](https://github.com/FrogDar/code-contributing-practice/blob/main/CONTRIBUTING.md) 中的规范(比如 git message 要使用[`angular` 规范](https://github.com/angular/angular/blob/main/CONTRIBUTING.md))。

注意事项:
### 练习二:处理多个提交

- 创建一个 issue,标题命名为 `Ex2` 或 `ex2` 或 `练习2` 或 `练习二`,机器人会将它分配给你,成为你的专属练习 issue
- 务必保持此次提交不包括上次提交的 git message。
- **目标**:学习在同一 PR 中进行多次提交,并保持提交历史的干净。
- **步骤**:
1. 创建一个 Issue,标题为 `Ex2` 或 `练习二`。
2. **务必为本次练习创建一条新分支**。
3. 确保本次 PR 不包含上一次练习的提交记录。

## TODO

Expand Down
1 change: 1 addition & 0 deletions records/cont1nu1ty.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
这是我的第一次 PR
Loading