2 changed files with 352 additions and 1 deletions
@ -0,0 +1,325 @@ |
|||||
|
# Git 提交代码流程指南 |
||||
|
|
||||
|
## 目录 |
||||
|
- [基本工作流程](#基本工作流程) |
||||
|
- [常用命令](#常用命令) |
||||
|
- [分支管理](#分支管理) |
||||
|
- [冲突解决](#冲突解决) |
||||
|
- [最佳实践](#最佳实践) |
||||
|
|
||||
|
## 基本工作流程 |
||||
|
|
||||
|
### 1. 检查当前状态 |
||||
|
```bash |
||||
|
# 查看当前工作目录状态 |
||||
|
git status |
||||
|
|
||||
|
# 查看当前分支 |
||||
|
git branch |
||||
|
|
||||
|
# 查看远程仓库信息 |
||||
|
git remote -v |
||||
|
``` |
||||
|
|
||||
|
### 2. 拉取最新代码 |
||||
|
```bash |
||||
|
# 拉取远程最新代码 |
||||
|
git pull origin master |
||||
|
|
||||
|
# 或者先获取再合并 |
||||
|
git fetch origin |
||||
|
git merge origin/master |
||||
|
``` |
||||
|
|
||||
|
### 3. 添加文件到暂存区 |
||||
|
```bash |
||||
|
# 添加所有文件 |
||||
|
git add . |
||||
|
|
||||
|
# 添加特定文件 |
||||
|
git add filename.py |
||||
|
|
||||
|
# 添加多个文件 |
||||
|
git add file1.py file2.py |
||||
|
|
||||
|
# 添加所有.py文件 |
||||
|
git add *.py |
||||
|
|
||||
|
# 交互式添加(选择性地添加文件的部分内容) |
||||
|
git add -p filename.py |
||||
|
``` |
||||
|
|
||||
|
### 4. 提交代码 |
||||
|
```bash |
||||
|
# 基本提交 |
||||
|
git commit -m "提交信息" |
||||
|
|
||||
|
# 添加并提交(跳过暂存区) |
||||
|
git commit -am "提交信息" |
||||
|
|
||||
|
# 修改最后一次提交信息 |
||||
|
git commit --amend -m "新的提交信息" |
||||
|
``` |
||||
|
|
||||
|
### 5. 推送到远程仓库 |
||||
|
```bash |
||||
|
# 推送到远程分支 |
||||
|
git push origin master |
||||
|
|
||||
|
# 推送到当前分支 |
||||
|
git push |
||||
|
|
||||
|
# 强制推送(谨慎使用) |
||||
|
git push --force |
||||
|
|
||||
|
# 推送所有分支 |
||||
|
git push --all |
||||
|
``` |
||||
|
|
||||
|
## 常用命令 |
||||
|
|
||||
|
### 查看信息 |
||||
|
```bash |
||||
|
# 查看提交历史 |
||||
|
git log |
||||
|
|
||||
|
# 查看简洁的提交历史 |
||||
|
git log --oneline |
||||
|
|
||||
|
# 查看文件变更 |
||||
|
git diff |
||||
|
|
||||
|
# 查看暂存区的变更 |
||||
|
git diff --cached |
||||
|
|
||||
|
# 查看特定文件的变更 |
||||
|
git diff filename.py |
||||
|
``` |
||||
|
|
||||
|
### 撤销操作 |
||||
|
```bash |
||||
|
# 撤销工作区的修改 |
||||
|
git checkout -- filename.py |
||||
|
|
||||
|
# 撤销暂存区的修改 |
||||
|
git reset HEAD filename.py |
||||
|
|
||||
|
# 撤销最后一次提交 |
||||
|
git reset --soft HEAD~1 |
||||
|
|
||||
|
# 撤销最后一次提交并删除修改 |
||||
|
git reset --hard HEAD~1 |
||||
|
``` |
||||
|
|
||||
|
### 分支操作 |
||||
|
```bash |
||||
|
# 创建新分支 |
||||
|
git branch new-branch |
||||
|
|
||||
|
# 创建并切换到新分支 |
||||
|
git checkout -b new-branch |
||||
|
|
||||
|
# 切换到分支 |
||||
|
git checkout branch-name |
||||
|
|
||||
|
# 删除分支 |
||||
|
git branch -d branch-name |
||||
|
|
||||
|
# 强制删除分支 |
||||
|
git branch -D branch-name |
||||
|
|
||||
|
# 查看所有分支 |
||||
|
git branch -a |
||||
|
``` |
||||
|
|
||||
|
## 分支管理 |
||||
|
|
||||
|
### 功能开发流程 |
||||
|
```bash |
||||
|
# 1. 从主分支创建功能分支 |
||||
|
git checkout -b feature/new-feature |
||||
|
|
||||
|
# 2. 开发功能并提交 |
||||
|
git add . |
||||
|
git commit -m "添加新功能" |
||||
|
|
||||
|
# 3. 推送到远程 |
||||
|
git push origin feature/new-feature |
||||
|
|
||||
|
# 4. 创建合并请求(在GitLab/GitHub上操作) |
||||
|
|
||||
|
# 5. 合并完成后删除本地分支 |
||||
|
git checkout master |
||||
|
git pull origin master |
||||
|
git branch -d feature/new-feature |
||||
|
``` |
||||
|
|
||||
|
### 热修复流程 |
||||
|
```bash |
||||
|
# 1. 从主分支创建热修复分支 |
||||
|
git checkout -b hotfix/critical-bug |
||||
|
|
||||
|
# 2. 修复问题并提交 |
||||
|
git add . |
||||
|
git commit -m "修复关键bug" |
||||
|
|
||||
|
# 3. 推送到远程 |
||||
|
git push origin hotfix/critical-bug |
||||
|
|
||||
|
# 4. 合并到主分支和开发分支 |
||||
|
``` |
||||
|
|
||||
|
## 冲突解决 |
||||
|
|
||||
|
### 合并冲突处理 |
||||
|
```bash |
||||
|
# 1. 尝试合并 |
||||
|
git merge feature-branch |
||||
|
|
||||
|
# 2. 如果有冲突,查看冲突文件 |
||||
|
git status |
||||
|
|
||||
|
# 3. 手动编辑冲突文件,解决冲突 |
||||
|
|
||||
|
# 4. 添加解决后的文件 |
||||
|
git add . |
||||
|
|
||||
|
# 5. 完成合并 |
||||
|
git commit |
||||
|
``` |
||||
|
|
||||
|
### 变基操作 |
||||
|
```bash |
||||
|
# 变基到主分支 |
||||
|
git rebase master |
||||
|
|
||||
|
# 如果有冲突,解决后继续 |
||||
|
git add . |
||||
|
git rebase --continue |
||||
|
|
||||
|
# 取消变基 |
||||
|
git rebase --abort |
||||
|
``` |
||||
|
|
||||
|
## 最佳实践 |
||||
|
|
||||
|
### 提交信息规范 |
||||
|
``` |
||||
|
类型(范围): 简短描述 |
||||
|
|
||||
|
详细描述(可选) |
||||
|
|
||||
|
相关任务: #123 |
||||
|
``` |
||||
|
|
||||
|
**类型说明:** |
||||
|
- `feat`: 新功能 |
||||
|
- `fix`: 修复bug |
||||
|
- `docs`: 文档更新 |
||||
|
- `style`: 代码格式调整 |
||||
|
- `refactor`: 代码重构 |
||||
|
- `test`: 测试相关 |
||||
|
- `chore`: 构建过程或辅助工具的变动 |
||||
|
|
||||
|
**示例:** |
||||
|
```bash |
||||
|
git commit -m "feat(adb): 添加设备连接功能 |
||||
|
|
||||
|
- 实现ADB设备自动发现 |
||||
|
- 添加设备状态监控 |
||||
|
- 支持多设备并行操作 |
||||
|
|
||||
|
相关任务: #45" |
||||
|
``` |
||||
|
|
||||
|
### 工作流程建议 |
||||
|
|
||||
|
1. **经常提交**:小步快跑,经常提交代码 |
||||
|
2. **清晰的提交信息**:使用描述性的提交信息 |
||||
|
3. **分支管理**:使用有意义的分支名称 |
||||
|
4. **代码审查**:提交前进行代码审查 |
||||
|
5. **测试**:提交前确保代码通过测试 |
||||
|
|
||||
|
### 常用别名配置 |
||||
|
```bash |
||||
|
# 配置Git别名 |
||||
|
git config --global alias.st status |
||||
|
git config --global alias.co checkout |
||||
|
git config --global alias.br branch |
||||
|
git config --global alias.ci commit |
||||
|
git config --global alias.unstage 'reset HEAD --' |
||||
|
git config --global alias.last 'log -1 HEAD' |
||||
|
``` |
||||
|
|
||||
|
## 完整工作流程示例 |
||||
|
|
||||
|
```bash |
||||
|
# 1. 检查状态 |
||||
|
git status |
||||
|
|
||||
|
# 2. 拉取最新代码 |
||||
|
git pull origin master |
||||
|
|
||||
|
# 3. 创建功能分支 |
||||
|
git checkout -b feature/user-authentication |
||||
|
|
||||
|
# 4. 开发功能 |
||||
|
# ... 编写代码 ... |
||||
|
|
||||
|
# 5. 添加文件 |
||||
|
git add . |
||||
|
|
||||
|
# 6. 提交代码 |
||||
|
git commit -m "feat(auth): 实现用户认证功能" |
||||
|
|
||||
|
# 7. 推送到远程 |
||||
|
git push origin feature/user-authentication |
||||
|
|
||||
|
# 8. 创建合并请求(在Web界面操作) |
||||
|
|
||||
|
# 9. 合并完成后清理 |
||||
|
git checkout master |
||||
|
git pull origin master |
||||
|
git branch -d feature/user-authentication |
||||
|
``` |
||||
|
|
||||
|
## 故障排除 |
||||
|
|
||||
|
### 常见问题解决 |
||||
|
|
||||
|
**问题1:推送被拒绝** |
||||
|
```bash |
||||
|
# 先拉取最新代码 |
||||
|
git pull origin master |
||||
|
|
||||
|
# 解决冲突后再次推送 |
||||
|
git push origin master |
||||
|
``` |
||||
|
|
||||
|
**问题2:提交到错误的分支** |
||||
|
```bash |
||||
|
# 创建新分支保存当前工作 |
||||
|
git checkout -b backup-branch |
||||
|
|
||||
|
# 回到正确的分支 |
||||
|
git checkout correct-branch |
||||
|
|
||||
|
# 应用更改 |
||||
|
git cherry-pick backup-branch |
||||
|
``` |
||||
|
|
||||
|
**问题3:撤销错误的提交** |
||||
|
```bash |
||||
|
# 查看提交历史 |
||||
|
git log --oneline |
||||
|
|
||||
|
# 撤销特定提交 |
||||
|
git revert commit-hash |
||||
|
|
||||
|
# 或者重置到特定提交 |
||||
|
git reset --hard commit-hash |
||||
|
``` |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
*最后更新:2024年* |
||||
Loading…
Reference in new issue