我正在尝试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子树似乎不支持变基(作为“集成”更改的两种方法之一:变基或合并)。 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
中合并无关的历史记录。这变得很棘手,对我而言,似乎需要交互式重新配置。