Git工作流feature分支合并

wen java案例 2

本文目录导读:

Git工作流feature分支合并

  1. 基本工作流
  2. 合并回主分支
  3. 处理冲突
  4. 远程分支策略
  5. 常用工作流模式
  6. 最佳实践
  7. 完整示例

我来详细介绍几种常见的Git工作流中的Feature分支合并策略。

基本工作流

创建Feature分支

# 从主分支创建
git checkout main
git pull origin main
git checkout -b feature/user-authentication
# 或者从develop分支创建
git checkout develop
git pull origin develop
git checkout -b feature/new-feature

开发与提交

# 在feature分支上工作
git add .
git commit -m "feat: add user login API"
git commit -m "feat: add user registration"

保持同步(合并主分支更新)

# 方法1:合并
git checkout feature/user-authentication
git merge main
# 解决冲突后提交
# 方法2:变基(推荐)
git checkout feature/user-authentication
git rebase main
# 解决冲突后继续
git rebase --continue

合并回主分支

普通合并

# 切换到目标分支
git checkout main
# 合并feature分支
git merge feature/user-authentication
# 推送到远程
git push origin main

压缩合并(Squash)

# 合并为一个提交
git checkout main
git merge --squash feature/user-authentication
git commit -m "feat: add user authentication system"

变基合并(推荐)

# 先变基
git checkout feature/user-authentication
git rebase main
# 然后快速前进合并
git checkout main
git merge feature/user-authentication

处理冲突

# 合并时发生冲突
git merge feature/new-feature
# 出现冲突提示
# 解决冲突后
git add .
git commit -m "fix: resolve merge conflicts"
# 或者使用变基时的冲突解决
git rebase main
# 解决冲突
git add .
git rebase --continue

远程分支策略

推送Feature分支

# 推送feature分支到远程
git push -u origin feature/user-authentication
# 持续推送更新
git push origin feature/user-authentication

删除Feature分支

# 删除本地分支
git branch -d feature/user-authentication
# 删除远程分支
git push origin --delete feature/user-authentication

常用工作流模式

GitHub Flow

# 简单流程
git checkout -b feature/login
# 开发...
git push origin feature/login
# 在GitHub上创建PR
# 合并后删除branch

Git Flow

# 使用develop分支
git checkout develop
git checkout -b feature/new-feature
# 完成feature后合并到develop
git checkout develop
git merge --no-ff feature/new-feature

最佳实践

保持提交整洁

# 交互式变基整理提交
git rebase -i HEAD~3
# 选择 squash/fixup/reword 等操作

使用标签

# 合并后打标签
git checkout main
git merge feature/release
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin --tags

撤销合并(如果需要)

# 撤销最近的合并提交
git reflog
git reset --hard HEAD@{1}
# 或使用 revert(推荐用于已推送的分支)
git revert -m 1 HEAD
git push origin main

完整示例

# 1. 开始新功能
git checkout -b feature/payment-system develop
# 2. 多次提交
git commit -m "feat: add payment gateway"
git commit -m "feat: implement refund logic"
git commit -m "test: add payment tests"
# 3. 同步主分支
git rebase develop
# 4. 压缩提交(可选)
git rebase -i HEAD~3
# 5. 推送并创建PR
git push origin feature/payment-system
# 6. 合并(通过PR或命令行)
git checkout develop
git merge --no-ff feature/payment-system
git push origin develop
# 7. 清理
git branch -d feature/payment-system

选择哪种合并策略取决于团队约定和项目需求,推荐使用 rebase + fast-forward merge 保持历史线性清晰

抱歉,评论功能暂时关闭!