# 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分支