相关疑难解决方法(0)

git rebase"--preserve-merges --onto"不保留合并

使用git v1.7.1我正在尝试同时使用--preserve-merges--onto功能进行rebase .最终结果似乎没有合并提交,因此看起来是线性的.我宁愿保留合并提交,原因与人们经常使用的相同--preserve-merges(更容易看到逻辑上属于单独功能并在其自己的分支中开发的提交组).

我的主分支(rebase的目的地)很无聊:

A-B-C

我想要的功能分支有一个已合并到其中的子功能分支.喜欢:

     X - Y
   /      \
V-W ------ Z
Run Code Online (Sandbox Code Playgroud)

其中Z是合并提交,它是要从中获取的要素分支的头部,并且X和Y位于子要素分支上.

我正在使用: git rebase --preserve-merges --onto C V Z

我想最终得到:

         X - Y
        /     \
A-B-C-W ------ Z
Run Code Online (Sandbox Code Playgroud)

但相反,我得到:

A-B-C-W-X-Y
Run Code Online (Sandbox Code Playgroud)

由于Z是一个无冲突的合并,代码的最终状态是正确的,但历史并不像我想的那样具有表现力.

有没有办法得到我想要的东西?

编辑地址@Bombe:我写了一个bash脚本来构建我的例子.在我的系统(RHEL 6.2 with git 1.7.1)上,这证明了我的问题.

#! /bin/bash
# start a new empty repo
git init
# make some commits on the master branch
git checkout master
touch A.txt; git add A.txt; git commit -m "add A.txt"; git …
Run Code Online (Sandbox Code Playgroud)

git rebase

8
推荐指数
1
解决办法
2609
查看次数

标签 统计

git ×1

rebase ×1