当前位置: 首页 > news >正文

git相关

1.将 'dev' 变基到 'origin/master

git rebase 是一个本地操作,它只会修改你当前所在分支的提交历史,而不会直接影响远程仓库或任何其他分支。

  1. 保持提交历史的线性和整洁: 这是 git rebase 最主要的目的。 想象一下 dev 分支是从 master 分支分叉出来的,并且在 dev 分支上进行了一些开发。 在此期间,master 分支可能也在不断更新。 如果你使用 git merge 将 master 分支合并到 dev 分支,那么 dev 分支的提交历史会包含一个合并提交,这会使提交历史看起来像一个分支树。 使用 git rebase 可以避免这种情况,它会将 dev 分支的提交“移动”到 master 分支的顶端,使 dev 分支的提交历史看起来像是直接在 master 分支上进行开发一样,从而保持提交历史的线性。

  2. 简化 dev 分支的提交历史: 通过将 dev 分支变基到 origin/master,你可以将 dev 分支上的所有提交都放在 origin/master 分支的最新提交之后。 这可以使 dev 分支的提交历史更加清晰,更容易理解。

  3. 示例:

    假设 origin/master 分支的提交历史如下:

    A -> B -> C
    

    dev 分支的提交历史如下:

    A -> D -> E
    

    如果你执行 git rebase origin/master 命令,那么 dev 分支的提交历史会变成:

    A -> B -> C -> D' -> E'
    

    其中 D' 和 E' 是 D 和 E 的副本,但它们的提交 ID 已经发生了改变。

2. 使 master 分支包含 dev 分支的更改

  1. 确保你在 dev 分支上,并且已经成功地将 dev 分支变基到 origin/master

    git checkout dev
    git rebase origin/master
    

    如果在变基过程中出现冲突,请解决冲突并使用 git rebase --continue 命令继续变基。

  2. 切换到 master 分支:

    git checkout master
    
  3. 将 dev 分支合并到 master 分支:

    git merge dev
    

    这会将 dev 分支上的所有更改合并到 master 分支。 如果出现冲突,请解决冲突。

  4. 将本地 master 分支推送到远程 origin/master 分支:

    git push origin master
    

    这将把你的本地 master 分支的更改推送到远程仓库,使远程 master 分支也包含 dev 分支的更改。

  • 变基 (rebase): git rebase origin/master 只是将 dev 分支的起点“移动”到 origin/master 的最新提交之后,使得 dev 分支的提交历史看起来像是直接在 origin/master 分支上进行开发一样。 它并没有修改 master 分支本身。
  • 合并 (merge): git merge dev 才是将 dev 分支的更改合并到 master 分支的步骤。 它会在 master 分支上创建一个新的合并提交,将 dev 分支的更改包含进来。
  • 推送 (push): git push origin master 是将你的本地 master 分支的更改推送到远程仓库的步骤。 只有执行了这个步骤,远程 master 分支才会发生变化。

相关文章:

  • 今日行情明日机会——20250509
  • 从设计到开发,原型标注图全流程标准化
  • 深度学习 ———— 迁移学习
  • 自动驾驶的“眼睛”:用Python构建智能障碍物检测系统
  • 2025医疗信息化趋势:健康管理系统如何重构智慧医院生态
  • 【新品发布】VXI可重构信号处理系统模块系列
  • 内网渗透——红日靶场三
  • C++ stl中的list的相关函数用法
  • 线程邮箱框架与示例
  • 星云智控:物联网时代的设备守护者——卓伊凡详解物联网监控革命-优雅草卓伊凡
  • 【FreeRTOS】1、学习FreeRTOS创建任务
  • Jenkins Maven 带权限 搭建方案2025
  • matlab转python
  • Elasticsearch内存管理与JVM优化:原理剖析与最佳实践
  • 面试常考算法2(核心+acm模式)
  • OpenHarmony SystemUI开发——修改状态栏和导航栏的高度
  • 读取传感器发来的1Byte数据:分低位先行和高位先行的处理方法
  • Web前端VSCode如何解决打开html页面中文乱码的问题(方法2)
  • 【MySQL】数据库、数据表的基本操作
  • Python MNE-Python 脑功能磁共振数据分析
  • 泰特现代美术馆25年:那些瞬间,让艺术面向所有人
  • 习近平会见斯洛伐克总理菲佐
  • 越怕出错越会出错,“墨菲定律”的魔咒该怎么破?
  • 长江画派创始人之一、美术家鲁慕迅逝世,享年98岁
  • 复旦大学文科杰出教授裘锡圭逝世,享年90岁
  • 数据中心业务今年预增50%,丹佛斯:中国是全球最重要的市场