【软件工程】如何使用Git Rebase同步团队开发进度

问题背景

现在,我正在我本地的私人开发分支feat/wu-sunflower/do_some_thing(对应云端分支origin/feat/wu-sunflower/do_some_thing),进行开发。

同时我的同事对代码也进行了一些改动(并且已经merge进了团队云端分支origin/dev)。我应该如何通过git rebase,与我的同事同步开发进度?

步骤

步骤 1:确保工作目录干净

检查工作目录中是否有未commit的修改。

bash 复制代码
git switch feat/wu-sunflower/do_some_thing  # 切换到我的分支
git status

如果有,请先commit,或者执行git stash把这些变动临时藏匿起来。

bash 复制代码
# 1. 正在开发中,修改了文件 A 和 B(未提交)
git status  # 显示有修改
# 2. 需要拉取团队最新代码
git stash -m "开发到一半的功能 A"
# 3. 现在工作目录干净了,可以拉取代码
git pull origin dev
# 4. 恢复之前的修改
git stash pop  # 或 git stash apply
# 5. 如果有冲突,手动解决后继续开发

步骤 2:拉取团队最新代码(不自动合并)

bash 复制代码
git fetch origin dev # 获取云端 dev 分支的最新提交

步骤 3:变基(rebase)我的分支到最新 dev

bash 复制代码
git rebase origin/dev  # 将当前分支变基到 origin/dev

此时可能出现冲突(因我的修改和同事的修改冲突)。

步骤 4:解决冲突(如果有)

定位冲突文件:

bash 复制代码
git status  # 查看冲突文件列表

然后手动编辑文件,解决冲突(文件中的 <<<<<<<>>>>>>> 标记区域)。

之后手工告知git,冲突已解决:

bash 复制代码
git add <冲突文件路径>  # 将解决后的文件加入暂存区

继续变基:

bash 复制代码
git rebase --continue

重复此过程直到所有冲突解决。

若需放弃变基:

bash 复制代码
git rebase --abort  # 回到 rebase 前的状态

步骤 5:推送更新到我的云端分支

shell 复制代码
git push origin feat/wu-sunflower/do_some_thing --force-with-lease

此操作将把变基后的本地仓库推送到云端分支origin/feat/wu-sunflower/do_some_thing

最终效果

css 复制代码
我的原始提交:          A--B--C [feat/wu-sunflower/...]
团队 dev 更新:         D--E--F [origin/dev]
变基后:                D--E--F--A'--B'--C' [feat/wu-sunflower/...]

A', B', C' 是我的提交在最新 dev 上的重新应用)

相关推荐
Remember_9938 分钟前
Spring 核心原理深度解析:Bean 作用域、生命周期与 Spring Boot 自动配置
java·前端·spring boot·后端·spring·面试
cyforkk3 小时前
12、Java 基础硬核复习:集合框架(数据容器)的核心逻辑与面试考点
java·开发语言·面试
测试涛叔10 小时前
金三银四软件测试面试题(800道)
软件测试·面试·职场和发展
C雨后彩虹12 小时前
计算疫情扩散时间
java·数据结构·算法·华为·面试
weixin_4624462312 小时前
Git 本地忽略 application-dev.yml 的最佳实践:不提交 .gitignore,不影响团队协作!
git
蒹葭玉树13 小时前
【C++上岸】C++常见面试题目--操作系统篇(第二十八期)
linux·c++·面试
多米Domi01116 小时前
0x3f 第48天 面向实习的八股背诵第五天 + 堆一题 背了JUC的题,java.util.Concurrency
开发语言·数据结构·python·算法·leetcode·面试
无限进步_19 小时前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
2401_8590490819 小时前
git submodule update --init --recursive无法拉取解决
前端·chrome·git
win x20 小时前
JavaSE(基础)高频面试点及 知识点
java·面试·职场和发展