# 代码贡献指南

1. 首先非常欢迎和感谢对本项目发起 `Pull Request` 的热心小伙伴们。
2. **特别提示：请务必在 `dev` 分支提交 `PR`，`main` 分支目前仅是正式版的代码，即发布正式版本后才会从 `dev` 分支进行合并。**
3. 本项目代码风格为使用2个空格代表一个Tab，因此在提交代码时请注意一下，否则很容易在IDE格式化代码后与原代码产生大量diff，这样会给其他人阅读代码带来极大的困扰。
4. 当你遇到这几种情况，非常欢迎你做出贡献，如纠正拼写错误、损坏的链接、或者是其它较明显的错误，又或者是开始一项别人请求的任务，或者是过去在 `issue` 中早就讨论过的。
5. **提交代码前，请再三检查并测试是否能正常运行，如若有难点无法解决，请在提交时注明情况。并且保证新增加或者修改的方法都有完整的文档说明。**
6. 本项目可以采用两种方式接受代码贡献：
  -  第一种就是基于[Git Flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow)开发流程，因此在发起Pull Request的时候请选择dev分支，详细步骤参考后文，推荐使用此种方式贡献代码。
  - 另外一种贡献代码的方式就是加入Solitude开发组，前提是对自己的代码足够自信就可以申请加入，加入之后可以随时直接提交代码，但要注意对所做的修改或新增的代码进行单元测试，保证提交代码没有明显问题。


### PR方式贡献代码步骤

* 在 GitHub 上 `fork` 到自己的仓库，如 `yife68/Hexo-Theme-Solitude`，然后 `clone` 到本地Hexo主题目录，并设置用户信息。

```bash
$ git clone git@github.com:{your-github-username}/hexo-theme-solitude.git themes/solitude
$ cd solitude
$ git config user.name "yourname"
$ git config user.email "your email"
```

* 修改代码后提交，并推送到自己的仓库。

```bash
$ #do some change on the content
$ git commit -am "Fix issue #1: change something"
$ git push
```

* 在 `GitHub` 上提交 `Pull Request`。
* 定期使用项目仓库内容更新自己仓库内容。

```bash
$ git remote add upstream https://github.com/valor-x/Hexo-theme-solitude
$ git fetch upstream
$ git checkout dev
$ git rebase upstream/dev
$ git push -f origin dev
```

* 不得添加任何第三方的创作