-
Notifications
You must be signed in to change notification settings - Fork 2.3k
贡献指南
感谢您对 川虎ChatGPT 的关注!我们欢迎您为项目作出贡献!
如果您具备一定能力,您可以修改本项目的源代码,并提交一个 pull request。下面的章节将会对这一过程展开具体介绍,请您务必在贡献前完整阅读以下内容。我们假设您已经基本了解 git 和 GitHub 的工作流程。
(由于 Copilot For Pull Requests 还没正式发布,所以请务必看看这部分内容QAQ)
在一切开始前,请您先检查 <您想要解决的问题> 或 <您想要新增的功能> 等是否在某个 issue 或 pull request 或 discussion 提被到过。如果有,请先阅读我们的反馈,并以此确定您是否该投入开发(当然,您也可以在原始会话下留言)。
如果没人提到过,您可以采用以下任意一种方式以声明您正着手解决 <您想要解决的问题> 或 您正着手开发 <您想要新增的功能> :
- 使用 功能请求 模板提交一个 issue,勾选
我愿意协助开发!复选框,并在 issue 中给出更多您的开发思路和信息。(当您还没尝试开发时) - 提交一个 draft pull request,除了写明相关 pull request 信息外,您还需要给出您的开发进度,还需要进行的工作等。(当您已经进行过更改并产生过 commit 时)
对于开发者,在克隆本项目之前,我们建议您先fork一份到自己的GitHub账号下,方便我们对您的贡献进行审核和合并:
- 打开 川虎ChatGPT 的 GitHub页面,点击“Fork”按钮将项目fork到您的账号下。
- 将您账户下的fork仓库克隆到本地:
git clone https://github.com/<your-username>/ChuanhuChatGPT.git cd ChuanhuChatGPT
-
创建一个新的分支,并将 HEAD 指向该分支:
git checkout -b <new-branch-name>
其中
<new-branch-name>为新分支的名称。您可以语义化的名称,例如:fixUI、addArg等。 -
在该分支上进行代码修改和提交:
具体的开发规范请参照 开发规范 章节。
当您完成开发工作后,使用以下命令提交您的更改:git add <some-file> git commit -m "<Your commit message>"
-
将更改推送到GitHub:
push之前,您应当再尝试拉取一下本项目的main分支以更新您的分支。
请最好使用pull --rebase命令变基您自己的分支来同步上游仓库的更新,以避免产生过多的merge信息:git pull https://github.com/GaiZhenbiao/ChuanhuChatGPT.git main --rebase
然后push:
git push
事实上,我们没有太多的开发规范……但是还是请您尽力做到一定的规范性:
- 在编写代码前,先大致阅读代码全文,简要理解本项目的代码风格和命名风格,再开始您的工作。
- 在撰写 commit message 时,提供简洁而有意义的提交消息和说明,以便其他贡献者可以理解您的更改。
- 提交消息和代码注释允许使用中文。
另外,对于本项目,还有几个需要您特别注意的点:
-
注意不要把您的API-KEY推送到远程仓库!
如果您发现您在commit中误提交了API-Key,可以使用git commit --amend或git rebase来修正您的更改。 - 不要更改与您的更改无关的位置的任何空行、缩进或代码风格,注意不要让编辑器的格式化工具自动更改。这会使后期排查blame变得困难。
现在,您将能根据GitHub的提示,创建并提交一个拉取请求~
在提交 pull request 之前,请确保:
- 在提交拉取请求之前,您已经用我们的主分支中更新您的分支。
- 您的代码不会破坏项目的现有功能。
- 您自己进行过简单的测试,确保没有引入新的错误——至少您自己本地运行时没有发现错误。
如果您确保代码没有问题,您可以直接向我们的main分支提交一个 pull request!
我们建议使用拉取请求模板来帮助您创建高质量的拉取请求。(Copilot For Pull Requests还没出现,别急)
建议使用以下模板:
### 描述
描述您的pull request所做的更改。
另外请附上相关程序运行时截图,以直观地展现您的更改达成的效果。
### 相关问题
(如有)请列出与此拉取请求相关的issue。
或者,您可以直接描述您的工作能解决的问题等。
### 更改类型
请指明适用于此拉取请求的更改类型:
- 新功能
- 修复错误
- 代码重构
- 文档
- 其他(请您写一下具体类型,但需要符合开发人员常见的规范。)
### 补充信息
请提供任何其他信息或说明,有助于其他贡献者理解您的更改。
如果您提交的是draft pull request,也请在这里写明开发进度。例子:
#### 开发进度
- [x] 已经做好的事情1
- [ ] 还要干的事情1
- [ ] 还要干的事情2所有 pull request 都需要被项目管理者审核和接受才能合并到主分支中。如果您的拉取请求需要进行更改,请根据反馈信息进行修改,并持续在您的开发分支上提交。同时,我们也可能直接向您的分支进行提交并产生更改,请注意拉取更新。
您的 pull request 一般会被以 squash merge 的方式合并。这意味着,您 pull request 中的所有 commit 会被压缩成一个 commit 进入我们的 main 分支。
特殊的情况请做出说明,我们会额外考虑。
通过提交拉取请求,您同意将您的贡献授予该项目的许可证下。
感谢为本项目做过贡献的人~