You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.4 KiB
5.4 KiB
Git 提交代码流程指南
目录
基本工作流程
1. 检查当前状态
# 查看当前工作目录状态
git status
# 查看当前分支
git branch
# 查看远程仓库信息
git remote -v
2. 拉取最新代码
# 拉取远程最新代码
git pull origin master
# 或者先获取再合并
git fetch origin
git merge origin/master
3. 添加文件到暂存区
# 添加所有文件
git add .
# 添加特定文件
git add filename.py
# 添加多个文件
git add file1.py file2.py
# 添加所有.py文件
git add *.py
# 交互式添加(选择性地添加文件的部分内容)
git add -p filename.py
4. 提交代码
# 基本提交
git commit -m "提交信息"
# 添加并提交(跳过暂存区)
git commit -am "提交信息"
# 修改最后一次提交信息
git commit --amend -m "新的提交信息"
5. 推送到远程仓库
# 推送到远程分支
git push origin master
# 推送到当前分支
git push
# 强制推送(谨慎使用)
git push --force
# 推送所有分支
git push --all
常用命令
查看信息
# 查看提交历史
git log
# 查看简洁的提交历史
git log --oneline
# 查看文件变更
git diff
# 查看暂存区的变更
git diff --cached
# 查看特定文件的变更
git diff filename.py
撤销操作
# 撤销工作区的修改
git checkout -- filename.py
# 撤销暂存区的修改
git reset HEAD filename.py
# 撤销最后一次提交
git reset --soft HEAD~1
# 撤销最后一次提交并删除修改
git reset --hard HEAD~1
分支操作
# 创建新分支
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
分支管理
功能开发流程
# 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
热修复流程
# 1. 从主分支创建热修复分支
git checkout -b hotfix/critical-bug
# 2. 修复问题并提交
git add .
git commit -m "修复关键bug"
# 3. 推送到远程
git push origin hotfix/critical-bug
# 4. 合并到主分支和开发分支
冲突解决
合并冲突处理
# 1. 尝试合并
git merge feature-branch
# 2. 如果有冲突,查看冲突文件
git status
# 3. 手动编辑冲突文件,解决冲突
# 4. 添加解决后的文件
git add .
# 5. 完成合并
git commit
变基操作
# 变基到主分支
git rebase master
# 如果有冲突,解决后继续
git add .
git rebase --continue
# 取消变基
git rebase --abort
最佳实践
提交信息规范
类型(范围): 简短描述
详细描述(可选)
相关任务: #123
类型说明:
feat: 新功能fix: 修复bugdocs: 文档更新style: 代码格式调整refactor: 代码重构test: 测试相关chore: 构建过程或辅助工具的变动
示例:
git commit -m "feat(adb): 添加设备连接功能
- 实现ADB设备自动发现
- 添加设备状态监控
- 支持多设备并行操作
相关任务: #45"
工作流程建议
- 经常提交:小步快跑,经常提交代码
- 清晰的提交信息:使用描述性的提交信息
- 分支管理:使用有意义的分支名称
- 代码审查:提交前进行代码审查
- 测试:提交前确保代码通过测试
常用别名配置
# 配置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'
完整工作流程示例
# 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:推送被拒绝
# 先拉取最新代码
git pull origin master
# 解决冲突后再次推送
git push origin master
问题2:提交到错误的分支
# 创建新分支保存当前工作
git checkout -b backup-branch
# 回到正确的分支
git checkout correct-branch
# 应用更改
git cherry-pick backup-branch
问题3:撤销错误的提交
# 查看提交历史
git log --oneline
# 撤销特定提交
git revert commit-hash
# 或者重置到特定提交
git reset --hard commit-hash
最后更新:2024年