github-workflow.md 3.2 KB

GitHub 工作流程

本文旨在向您介绍DragonOS社区的GitHub工作流程。包括一些用于帮助你维持本地环境与社区上游仓库同步的建议,还有一些git提交规范等等。

本文以DragonOS主仓库为例,社区的其他仓库亦适用此工作流程

[[toc]]

1. 在GitHub上创建一个Fork

  1. 打开 https://github.com/DragonOS-Community/DragonOS
  2. 点击页面右上角的Fork按钮,在你自己的账户下创建一个fork

2. 克隆主仓库到你的电脑

主仓库克隆到你的电脑(注意不是你账户下Fork后的仓库)


git clone https://github.com/DragonOS-Community/DragonOS
# 或者是 git clone [email protected]:DragonOS-Community/DragonOS

cd DragonOS

接着,添加你fork的仓库,假设你的名字叫zhangsan,那么就执行以下命令:

注意替换url为你账号下的仓库的链接


git remote add zhangsan https://github.com/zhangsan/DragonOS
# 或者是 git remote add zhangsan [email protected]:zhangsan/DragonOS

# 设置永远不推送到远程的master分支
git remote set-url --push origin no_push

# 确认你设置的远程已经生效
git remote -v

3. 创建工作分支

请记住: 永远不要在你本地的master分支上进行提交。请保持master分支与社区仓库的master一致。

在开发之前,需要创建新的分支。每个PR都要使用一个新的、干净的分支。

首先,请切换到本地的master分支(或者main分支),然后让它与远程同步。

git fetch origin
gir checkout master

创建你的工作分支:

git checkout -b patch-my-feature

请注意,分支名字应当能简短的说明这个pr是干啥的。

接着,你就可以开始开发了!

4. 使你的分支与远程最新的代码保持同步

在开发过程中,您需要周期性的从社区主仓库合并代码到你本地的工作分支。如果您长期不同步主仓库代码,那么就会产生很多的冲突,甚至导致您的更改难以合并到主仓库。

在执行以下命令之前,请您先切换到您的开发分支,然后执行以下命令:

git fetch origin
git rebase origin/master

请注意,不要使用git pull来合并主仓库代码到你的开发分支。请务必使用以上命令。因为,git pull 会创建merge commits,这会让提交历史变得混乱,使得您的PR的commit历史记录就变得难以理解了。

5. 提交你的更改

一般来说,直接提交就行。

git commit

你可能会经常把你的更改进行commit,以便能够回退更改.

6. 推送到GitHub

当你的PR已经完成,能够准备进行审查的时候,请你把工作分支推送到你在GitHub上的仓库。

以上面的远程zhangsan为例,命令如下:

git push zhangsan patch-my-feature

7. 创建新的Pull Request

  1. 打开你在GitHub上Fork的仓库 https://github.com/<username>/DragonOS
  2. 点击右上角的Compare & Pull Request按钮,然后选择分支patch-my-feature,目标为社区主仓库的master分支(或main分支)。
  3. 关于Pull Request的进一步要求,请查看Pull Request流程介绍