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

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: 修复bug
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • test: 测试相关
  • chore: 构建过程或辅助工具的变动

示例:

git commit -m "feat(adb): 添加设备连接功能

- 实现ADB设备自动发现
- 添加设备状态监控
- 支持多设备并行操作

相关任务: #45"

工作流程建议

  1. 经常提交:小步快跑,经常提交代码
  2. 清晰的提交信息:使用描述性的提交信息
  3. 分支管理:使用有意义的分支名称
  4. 代码审查:提交前进行代码审查
  5. 测试:提交前确保代码通过测试

常用别名配置

# 配置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年