Git 如何重新设置子树的基础?
我正在试验,我需要一些帮助 我在文件夹Git 如何重新设置子树的基础?,git,git-subtree,Git,Git Subtree,我正在试验,我需要一些帮助 我在文件夹a/B中有一个回购a,带有一个子树,由上游回购B生成。上游B/x中有一个文件,我可以看到等效文件a/B/x存在并且是最新的。如果我首先修改上游文件A/b/x,以及下游文件b/x,当我调用git子树push…时,我会得到一个合并冲突,正如预期的那样 我可以做一个git子树拉…,它执行一个应用于我的B/x编辑的合并。我更愿意执行rebase操作,其中对B/x的更改将应用于a/B/x编辑 如何做到这一点?Git子树似乎不支持rebase(作为“集成”更改的两种方法
a/B
中有一个回购a
,带有一个子树,由上游回购B
生成。上游B/x
中有一个文件,我可以看到等效文件a/B/x
存在并且是最新的。如果我首先修改上游文件A/b/x
,以及下游文件b/x
,当我调用git子树push…
时,我会得到一个合并冲突,正如预期的那样
我可以做一个git子树拉…
,它执行一个应用于我的B/x
编辑的合并。我更愿意执行rebase
操作,其中对B/x
的更改将应用于a/B/x
编辑
如何做到这一点?Git子树似乎不支持rebase(作为“集成”更改的两种方法之一:rebase或merge)。有一个提到了再基地,但我认为这是在一个不同的背景下 子树pull命令甚至不发出git pull命令,而是将其拆分为两个必要的命令fetch+merge,或者我建议覆盖pull的默认集成策略(
pull.rebase
)
如果我正确理解了您的场景,我认为您应该避免直接在其存储库中修改B/x
。子树允许您修改A/b/x
,并使用Subtree push
将更改发送到子树的远程服务器
不管怎样,子树并不是真正的“重基”意识。您始终可以直接重新设置
B
远程数据库的基础,但仍然需要在A
中合并不相关的历史记录。这变得很棘手,对我来说,似乎需要交互式的rebase。Git子树似乎不支持rebase(作为“集成”更改的两种方法之一:rebase或merge)。有一个提到了再基地,但我认为这是在一个不同的背景下
子树pull命令甚至不发出git pull命令,而是将其拆分为两个必要的命令fetch+merge,或者我建议覆盖pull的默认集成策略(pull.rebase
)
如果我正确理解了您的场景,我认为您应该避免直接在其存储库中修改B/x
。子树允许您修改A/b/x
,并使用Subtree push
将更改发送到子树的远程服务器
不管怎样,子树并不是真正的“重基”意识。您始终可以直接重新设置B
远程数据库的基础,但仍然需要在A
中合并不相关的历史记录。这会变得很棘手,对我来说,似乎需要交互式的重基