# 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年*