将现有Git存储库合并到另一个现有存储库中的自制文件夹中

时间:2016-11-17 00:34:19

标签: git github version-control merge git-merge

我的情景:

我有两个现有的Git回购:

 Project-A
 Project-B

我已经通过子树合并将Project-A合并到Project-B中,没有任何问题。主要是在第三个答案之后:

How do you merge two Git repositories?

但是我需要将Project-A合并到我在Project-B中创建的文件夹中。不属于Project-B本身。我一直得到的东西看起来像这样:

 Project-B
   - Components - self made folder via git add component/README
   - Project-A

我需要的结构是:

 Project-B
   - Components  - self made folder via git add component/README
      - Project-A

我一直在从Components文件夹中合并Project-A,所以我不确定为什么当我推送时我会继续在Component之外使用Project-A?

此外,当我合并项目A.我想同时合并所有分支,我一直在尝试“git merge Project-A”,但我收到一条消息,说Git不能这样做。所以我必须做一些像“git merge Project-A / master”这样的事情。但是Project-A中有20个不同的分支,我需要将它们推入组件文件夹。可以一次合并所有分支吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用git subtree add --prefix=Components/Project-A <Project-A’s address> branchname来实现上面显示的第二个结构。

您可以使用git subtree push --prefix= Components/Project-A <Project-A’s address> branchname/ Components/Project-A目录中的更改推送到远程Project-A

原因是,您无法成功使用git merge Project-Agit merge Project-A/master。因为组件/项目中存在的东西-A不是作为分支而是作为项目B中的子项目(您可以使用git branch来显示存在的分支,您会发现这些分支仅属于项目 - B)。由于Project-A不是分支,因此无法合并有关Project-A的任何内容。