926fa05cf1
新文件: "AI\346\212\200\346\234\257/docker-compose.yml" 修改: "GIT\346\212\200\346\234\257.md" 删除: README.md
227 lines
5.0 KiB
Markdown
227 lines
5.0 KiB
Markdown
# GIT 功能应用
|
||
|
||
公司 http://117.78.60.236:8000/users/sign_in zhanghonggang@csbr.cn w~7!
|
||
|
||
|
||
|
||
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
sudo apt install git
|
||
sudo apt install gitk git-cola 图形化工具
|
||
|
||
全局设置
|
||
git config --global user.email "zimyx@.com"
|
||
git config --global user.name "Your Name"
|
||
git config --global credential.helper store 全局级别保存凭据,免密
|
||
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
### SSH 免密推送配置(你提供的步骤非常重要)
|
||
|
||
配置 SSH 密钥后,可以避免每次推送代码时输入密码:
|
||
|
||
#### 1. 生成 SSH 密钥对
|
||
|
||
```
|
||
ssh-keygen -t rsa -C "your_email@example.com" 也可用用户名
|
||
```
|
||
|
||
按提示完成三次回车即可生成密钥。查看公钥内容:
|
||
|
||
```
|
||
cat ~/.ssh/id_rsa.pub
|
||
```
|
||
|
||
#### 2. 在 Gitea 中添加 SSH 公钥
|
||
|
||
登录 Gitea Web 界面 → 点击右上角头像 → 设置 → SSH/GPG 密钥 → 添加密钥 → 粘贴公钥内容并保存。
|
||
|
||
#### 3. 修改远程仓库地址为 SSH 格式
|
||
|
||
```
|
||
# 查看当前远程地址
|
||
git remote -v
|
||
|
||
# 修改为 SSH 地址
|
||
git remote set-url origin git@gitea.example.com:username/repo.git
|
||
```
|
||
|
||
#### 4. 测试 SSH 连接
|
||
|
||
```
|
||
在服务器上创建 zimy 用户并设置密码:
|
||
sudo useradd -m -s /bin/bash zimy
|
||
sudo passwd zimy 设置密码
|
||
|
||
|
||
ssh -T zimy@zgene.cn
|
||
```
|
||
|
||
首次连接会提示信任主机,输入 `yes` 确认。认证成功后会显示欢迎信息。
|
||
|
||
|
||
|
||
## 分支管理规范
|
||
|
||
分支类型与命名规范
|
||
|
||
### 分支命名格式
|
||
|
||
| 分支类型 | 命名格式 | 示例 |
|
||
|---------|---------|------|
|
||
| 主分支 | `main` | `main` |
|
||
| 开发分支 | `dev` | `dev` |
|
||
| 功能分支 | `feat/<功能名>` | `feat/event`, `feat/stream` |
|
||
| 热修复分支 | `hotfix/<问题名>` | `hotfix/event` |
|
||
| 发布分支 | `release/<版本号>` | `release/v1.0.0` |
|
||
|
||
### 分支用途说明
|
||
|
||
| 分支类型 | 用途说明 |
|
||
|---------|---------|
|
||
| `main` | 稳定版本分支,直接对应生产环境代码 |
|
||
| `dev` | 开发主分支,所有功能集成分支先合并到此分支 |
|
||
| `feat/*` | 功能开发分支,用于开发新功能 |
|
||
| `hotfix/*` | 热修复分支,用于紧急修复生产问题 |
|
||
| `release/*` | 发布分支,用于版本发布准备 |
|
||
|
||
### 分支流程规则
|
||
|
||
#### 核心规则:dev 禁止合并到 main
|
||
|
||
**重要约束:`dev` 分支** **禁止直接合并到 `main` 分支**
|
||
|
||
- `dev` 是开发分支,代码未经充分测试,不适合直接发布到生产
|
||
- 所有合并到 `main` 的代码必须通过 `release/*` 分支或直接从 `hotfix/*` 分支合并
|
||
|
||
#### 标准合并流程
|
||
|
||
```
|
||
功能开发流程:
|
||
feat/* → dev → release/* → main
|
||
|
||
热修复流程:
|
||
hotfix/* → main (紧急情况可直接合并)
|
||
hotfix/* → dev (同步修复到开发分支)
|
||
```
|
||
|
||
#### 各分支合并规则
|
||
|
||
| 从分支 | 合并到 | 是否允许 | 说明 |
|
||
|-------|-------|---------|------|
|
||
| `feat/*` | `dev` | ✅ 允许 | 功能开发完成后合并到开发分支 |
|
||
| `dev` | `main` | ❌ 禁止 | dev 禁止直接合并到 main |
|
||
| `dev` | `release/*` | ✅ 允许 | 开发分支可以合并到发布分支 |
|
||
| `release/*` | `main` | ✅ 允许 | 发布分支通过测试后合并到 main |
|
||
| `release/*` | `dev` | ✅ 允许 | 发布分支可同步回开发分支 |
|
||
| `hotfix/*` | `main` | ✅ 允许 | 热修复可直接合并到 main |
|
||
| `hotfix/*` | `dev` | ✅ 允许 | 热修复需同步到开发分支 |
|
||
| `feat/*` | `main` | ❌ 禁止 | 功能分支禁止直接合并到 main |
|
||
| `feat/*` | 其他 `feat/*` | ❌ 禁止 | 功能分支之间禁止互相合并 |
|
||
|
||
### 当前项目分支结构
|
||
|
||
```
|
||
本地分支:
|
||
- dev (开发主分支,当前工作分支)
|
||
- feat/event (事件功能分支)
|
||
- feat/stream (流功能分支)
|
||
- hotfix/event (事件热修复分支)
|
||
- main (生产环境分支)
|
||
|
||
远程分支:
|
||
- origin/main
|
||
- origin/dev
|
||
- origin/feat/event
|
||
```
|
||
|
||
### Git 操作指南
|
||
|
||
#### 创建功能分支
|
||
|
||
```bash
|
||
# 从 main 创建功能分支
|
||
git checkout main
|
||
git pull origin main
|
||
git checkout -b feat/your-feature-name
|
||
```
|
||
|
||
#### 合并功能到 dev
|
||
|
||
```bash
|
||
# 完成功能开发后,切换到 dev 分支
|
||
git checkout dev
|
||
git pull origin dev
|
||
|
||
# 合并功能分支
|
||
git merge feat/your-feature-name
|
||
|
||
# 推送 dev 分支
|
||
git push origin dev
|
||
```
|
||
|
||
#### 创建发布分支
|
||
|
||
```bash
|
||
# 从 dev 创建发布分支
|
||
git checkout dev
|
||
git pull origin dev
|
||
git checkout -b release/v1.0.0
|
||
```
|
||
|
||
#### 发布到 main
|
||
|
||
```bash
|
||
# 在 release 分支完成测试后,合并到 main
|
||
git checkout main
|
||
git pull origin main
|
||
git merge release/v1.0.0
|
||
git push origin main
|
||
|
||
# 删除发布分支
|
||
git branch -d release/v1.0.0
|
||
git push origin --delete release/v1.0.0
|
||
```
|
||
|
||
#### 热修复操作
|
||
|
||
```bash
|
||
# 从 main 创建热修复分支
|
||
git checkout main
|
||
git pull origin main
|
||
git checkout -b hotfix/issue-description
|
||
|
||
# 修复完成后,合并到 main
|
||
git checkout main
|
||
git merge hotfix/issue-description
|
||
git push origin main
|
||
|
||
# 同时合并到 dev
|
||
git checkout dev
|
||
git merge hotfix/issue-description
|
||
git push origin dev
|
||
|
||
# 删除热修复分支
|
||
git branch -d hotfix/issue-description
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
```
|
||
git add .
|
||
git commit -m "更新代码"
|
||
git push
|
||
```
|
||
|