我正在努力理解使用git子树策略的意义。我的目的是把一些不同的回购组合成一个伞式回购下的玩具回购小家庭。我正在使用这里详述的子树策略:http://help.github.com/subtree-merge
我拔出头发试图说服git我想从这些子树中创建一个分支,而不是从根创建。当我将cd转换成子树时,创建分支,然后cd返回到根,从根运行git分支清楚地表明分支是在根上创建的。叹息。
我喜欢git/github,但是让这个看似例行的任务正常工作真是让人抓狂。
有人能开导我吗?
最佳答案
git只在“整个”树级别工作,所以无论您在工作树操作中的位置,比如branch
,checkout <branch>
,commit
都在根级别工作。
子树合并策略是一种合并策略,当您拥有一个存储库时,其中一个分支已将文件子树移动到存储库中的另一个位置,而另一方已对原始位置中的这些文件进行了更改,则该策略可提供帮助。它的目的是帮助合并这两个操作,以一种正常的合并策略会产生更多的冲突或将文件留在错误的位置。
子树合并策略与git的“整棵树”操作的工作方式没有关系,因此,如果要创建一个仅是存储库的一个子树的分支,则需要进行分支,然后在删除其他子树并将感兴趣的树移动到根级别的情况下进行新的提交。
不过,考虑到您的使用模式,我建议您长期阅读子模块。它可能提供适合您所要实现的功能。
关于git - Git子树。为什么我不能从子树而不是根分支?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1551473/