IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git merge覆盖当前分支 -> 正文阅读

[开发工具]git merge覆盖当前分支

git merge覆盖当前分支

有这么一种场景,我们需要merge某个feature分支到master分支,且希望合并后master分支与feature分支的内容完全一致。

当feature分支与master分支没有分叉时,直接merge即可,默认执行fast-forward后两个分支指向同一个commitid。而当feature分支与master分支存在分叉时,git没有对应的命令或参数来完成目标。

查看git merge可以通过-s参数指定合并的策略,其中有个ours策略,合并其他分支的同时可以保持合并后的内容与当前分支一致。这个策略与我们的目标完全相反。但是git merge并没有提供theirs策略。

相似的是,在recursive合并策略中,可以通过-X参数指定遇到合并冲突时的解决方式,其选项可以为ours或者theirs,即冲突时使用当前分支的版本或者合并分支的版本。但是我们并不能通过recursive策略配合-X theirs来实现我们的目的,因为-X仅在遇到冲突时起作用。如果master分支上的某个commit与feature分支没有冲突,那么合并后该commit会保留下来,而这是feature分支不需要的。

目前而言,我们只能使用一些迂回操作来实现类似theirs策略。

  1. 先在master上创建一个正确的merge commit,commit的内容不重要,因为可以后续通过amend修改。
  2. 再为master构造一个与branchA一致的index,使得提交后的状态与branchA一致。
  3. 要得到branchA的index,首先要hard reset到branchA。但是hard reset会丢失master的commit,所以通过创建
    临时分支以保存master的提交记录。
  4. master reset到branchA后,再soft rest到刚刚创建的临时分支。soft rest保留了branchA的index,而commit
    回到了之前的master。
  5. amend commit 把branchA的index提交。

具体操作:

  1. git merge -s ours branchA 使用ours策略合并,产生一个merge记录,但是没有branchA的内容。
  2. git branch branchTemp 创建临时分支branchTemp,保存刚刚合并的结果。
  3. git reset --hard branchA 将master分支reset到branchA的状态。
  4. git reset --soft branchTemp 将master分支reset到临时分支branchTemp的状态,此时工作目录和index为branchA的状态。
  5. git commit --amend 提交工作目录的内容,此时步骤1的合并branchA记录就完成了ourstheirs的转变。
  6. git branch -D branchTemp 删除临时分支,git diff HEAD branchA 验证分支内容,。
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:19:30  更:2022-02-16 13:21:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:17:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码