# Git提交指南

## 项目现状

当前项目已经初始化了Git仓库，状态如下：

- 当前分支：main
- 远程仓库：origin (https://git.flowbb.top/humuyu/xdz-app.git)
- 已暂存的修改：多个文件
- 未暂存的修改：base-core/README.md
- 未跟踪的文件：3个（包含一些分析文档）

## 完整提交流程

### 步骤1：添加文件到暂存区

首先，需要将所有修改的文件和未跟踪的文件添加到暂存区：

```bash
# 添加未暂存的修改
$ git add base-core/README.md

# 添加所有未跟踪的文件
$ git add "AppInitializer\344\275\215\347\275\256\345\210\206\346\236\220.md"
$ git add app/src/main/java/com/narutohuo/xindazhou/auth/REFACTOR_EVALUATION.md
$ git add base-common/src/main/java/com/narutohuo/xindazhou/common/network/SANDWICH_COMPARISON_CORRECTED.md
$ git add "\346\236\266\346\236\204\345\210\206\346\236\220\346\212\245\345\221\212.md"

# 或者使用通配符添加所有未跟踪和修改的文件（推荐）
$ git add .
```

### 步骤2：检查暂存状态

确认所有文件都已正确添加到暂存区：

```bash
$ git status
```

### 步骤3：提交代码

使用有意义的提交信息提交代码：

```bash
# 基本提交
$ git commit -m "描述你的修改内容"

# 详细提交（推荐）- 会打开编辑器让你输入更详细的提交信息
$ git commit
```

### 步骤4：推送到远程仓库

将本地提交推送到远程仓库：

```bash
# 推送到默认远程分支（main）
$ git push

# 或者明确指定远程和分支
$ git push origin main
```

## 其他常用Git命令

### 查看提交历史

```bash
$ git log
# 查看简洁版历史
$ git log --oneline
```

### 查看修改内容

```bash
# 查看未暂存的修改
$ git diff

# 查看已暂存的修改
$ git diff --cached
```

### 创建新分支

```bash
$ git checkout -b 分支名
```

### 切换分支

```bash
$ git checkout 分支名
```

### 合并分支

```bash
# 切换到目标分支
$ git checkout main
# 合并其他分支
$ git merge 其他分支名
```

## 常见问题处理

### 冲突解决

如果推送时遇到冲突，需要先拉取远程代码并解决冲突：

```bash
# 拉取远程代码
$ git pull
# 解决冲突后重新提交
$ git add .
$ git commit
$ git push
```

### 撤销修改

```bash
# 撤销未暂存的修改
$ git restore 文件名

# 撤销已暂存的修改
$ git restore --staged 文件名

# 撤销最近的提交（但保留修改）
$ git reset HEAD~1
```

## 提交规范

为了保持代码仓库的整洁，建议遵循以下提交规范：

1. **提交信息清晰**：使用简洁明了的语言描述修改内容
2. **一次提交一个功能**：避免将多个不相关的修改放在一次提交中
3. **提交前测试**：确保代码能够正常编译和运行
4. **添加必要的注释**：对于复杂的修改，在代码中添加注释说明

## 示例提交流程

```bash
# 1. 检查状态
$ git status

# 2. 添加所有修改
$ git add .

# 3. 检查暂存状态
$ git status

# 4. 提交代码
$ git commit -m "重构：将认证模块从base-common迁移到app模块"

# 5. 推送到远程
$ git push
```

如果按照以上步骤操作，你的代码应该能够成功提交到远程仓库。