Git子树。为什么我不能从子树而不是根分支?

时间:2009-10-11 19:04:37

标签: git github

我正在努力尝试使用Git子树策略。我的目的是将一些不同的回购物一起放入伞形回购下的一个小玩具回购家庭中。我正在使用此处详述的子树策略:http://help.github.com/subtree-merge

我想把我的头发拉出来试图说服Git我想从根目录中创建一个 NOT 子树中的一个分支。当我进入子树,创建分支,然后cd回到根,从根运行git分支清楚地表明分支是在根创建的。叹息。

我喜欢git / github,但让这个看似常规的任务正常工作令人抓狂。

有人可以赐教我吗?

2 个答案:

答案 0 :(得分:5)

git仅适用于“整个”树级,因此无论您在branchcheckout <branch>commit等工作树操作中的哪个位置都在根级别工作。

子树合并策略是一种合并策略,可以帮助您拥有一个存储库,其中一个分支已将文件子树移动到存储库中的其他位置,另一方已对原始位置中的这些文件进行了更改。它旨在帮助合并这两个操作,使普通合并策略产生更多冲突或将文件留在错误的位置。

子树合并策略与git的“整个树”操作的工作方式无关,所以如果你想创建一个只是存储库的一个子树的分支,你需要分支然后用一个新的提交删除了其他子树,并将感兴趣的树移动到根级别。

考虑到您的使用模式,我建议您长时间阅读子模块。它可能提供适合您要实现的功能。

答案 1 :(得分:3)

我推荐使用apenwarr的git-subtree:http://github.com/apenwarr/git-subtree。希望它在某些时候被添加到git本身。