# 1. 开发流程
基于**AoneFlow**开发流程，具体请阅读：[在阿里，我们如何管理代码分支？](https://developer.aliyun.com/article/573549)
## 1.1 IDEA IDE版
###  步骤一 Fork JCNC/JNotepad或同步JCNC/JNotepad到个人仓库
#### 首次开发，进行Fork操作
![输入图片说明](https://foruda.gitee.com/images/1693230738686081312/d1f9178e_341872.png "屏幕截图")
#### 非首次开发，进行同步操作
![输入图片说明](https://foruda.gitee.com/images/1693230711005054075/9d8adb17_341872.png "屏幕截图")

### 步骤二 clone个人仓库或fetch
#### 首次开发，clone个人仓库
![输入图片说明](https://foruda.gitee.com/images/1693230809903750175/da0d73b5_341872.png "屏幕截图")
#### 非首次开发，执行fetch
![输入图片说明](https://foruda.gitee.com/images/1693231554501661630/308a9783_341872.png "屏幕截图")

### 步骤三 从remote下的master分支创建本地开发分支。
**特殊情况：开发依赖release分支已提交内容，或是对已提交内容进行修改，那么需要从release分支上进行拉取。**
![输入图片说明](https://foruda.gitee.com/images/1693231016998001511/7a6a6f3d_341872.png "屏幕截图")
![输入图片说明](https://foruda.gitee.com/images/1693231347247142683/17ff5fd4_341872.png "屏幕截图")

分支命名规则见：1.3节

### 步骤四 推送本地分支到远程

### 步骤五 发起Pull Request（PR）
![输入图片说明](https://foruda.gitee.com/images/1693232191273920333/65665291_341872.png "屏幕截图")

**注意：目标分支选择预期要发布的release分支**

## 1.2 GIT命令行版本
步骤一、步骤二、步骤五同1.1操作
```shell
# 步骤三
git fetch
git checkout origin/master && git checkout -b feature-demo
# 步骤四
git push origin feature-demo
```

## 1.3 分支命名规则
|issue类别|分支名格式|示例|
|--------|--------|----|
|功能/优化/文档修改|feature-issue编号|feature-I7W9LX|
|bug fix| fix-issue编号| fix-I7W9LX|
|代码重构|refactor-issue编号|refactor-I7W9LX|

# 2. IDEA插件配置
* 安装Resource Bundle插件
  ![输入图片说明](https://foruda.gitee.com/images/1693125995274955090/9efa2d4c_341872.png "屏幕截图")
* 安装成功后，打开i18n.properties，可以看到Resource Bundle tab
  ![输入图片说明](https://foruda.gitee.com/images/1693126057242554469/10667419_341872.png "屏幕截图")

# Q&A
Q: 本地开发时，主仓库合并了新代码，如何处理？    
A: 继续完成本地开发，发起PR时再解决冲突。

Q: 解决冲突步骤是什么？    
A: 一般按如下步骤。
1. 先同步主仓库
2. 本地仓库进行fetch
3. 本地开发分支merge/pull/rebase更新的release分支