我如何重新建立子树?

问题描述 投票:0回答:1

我正在尝试Git subtree,我需要一些帮助。

我在文件夹A中有一个仓库B,带有从上游仓库A/b生成的子树。上游B/x中有一个文件,我可以看到等效文件A/b/x存在并且是最新的。如果我首先修改上游文件A/b/x和下游文件B/x,则在调用git subtree push ...时会出现合并冲突,正如预期的那样。

我可以执行git subtree pull ...并执行合并,该合并将应用到我的B/x编辑中。我希望进行rebase操作,将对B/x的更改应用到A/b/x编辑中。

我该怎么做?

git git-subtree
1个回答
0
投票

Git子树似乎不支持变基(作为“集成”更改的两种方法之一:变基或合并)。 TODO提到了重新定基,但我认为它处于不同的上下文中。

[subtree pull命令甚至没有发出git pull命令,而是将其分成两个必要的命令,即fetch + merge,否则我建议重写Pull的默认集成策略(pull.rebase。]]

https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh#L870

如果我正确理解了您的情况,我认为您应该避免

直接在其存储库中修改B/x。子树允许您修改A/b/x并使用subtree push将更改发送到子树的远程。

不管哪种方式,子树都不是真正“变基”的。您始终可以直接将B遥控器重新设置为基准,但是仍然需要在A中合并无关的历史记录。这变得很棘手,对我而言,似乎需要交互式重新配置。

© www.soinside.com 2019 - 2024. All rights reserved.