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