我想将子树合并组合到常规(非合并)提交中。我目前通过首先执行子树合并,然后使用常规更改修改它来完成此操作。
git merge --strategy subtree --strategy-option subtree=subdir $subdir_parent
# stage changes
git commit --amend -m "message"
是否可以仅使用管道命令执行此操作?在git merge
生成的提交中,我没有看到这是子树合并提交的迹象。当我将$subtree_parent
作为第二个父项传递给git commit-tree
时,生成的提交无法包含$subtree_parent
的更改。
PS。是否有人反对向合并提交添加与合并无关的更改?
编辑我想我现在明白了。它只是合并提交的树,它决定了子树的合并方式吗?意味着树的子树等于第二个父树的顶部树。
答案 0 :(得分:0)
糟糕。这只是我对git如何工作感到困惑的结果。传递给git commit-tree
的树当然应该反映合并后的情况。我在没有更改subdir文件夹的情况下将树提供给它。简单地使用git commit-tree
创建合并提交并不会神奇地执行合并!