【问题标题】:Merging existing Git repository into self made folder within another existing repository将现有 Git 存储库合并到另一个现有存储库中的自制文件夹中
【发布时间】:2016-11-17 00:34:19
【问题描述】:

我的场景:

我有两个现有的 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,所以我不知道为什么当我推送时,我总是在 Components 之外获取 Project-A?

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

谢谢

【问题讨论】:

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


    【解决方案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。因为Components/Project-A中存在的东西不是作为一个分支而是作为你的Project-B中的子项目(你可以使用git branch来显示存在的分支,你会发现这些分支只属于Project-B) .由于 Project-A 不是分支,所以无法合并 Project-A 的任何内容。

    【讨论】:

    • 我可以使用以下命令将 Project-A/master 推送到 Project B 中: git merge -s ours --no-commit Project-A/master 但没有办法访问和一次合并所有分支。类似于: git merge -s ours --no-commit Project-A/all-branches..?
    • @bschmitty,我猜你使用了git remote add Project-A <Project-A’s URL> 添加遥控器。只有这样,你才能使用 git merge 关于 Project-A。而且一次合并所有分支是不可能的,就像合并的概念一样,一次只影响两个分支。希望它可以帮助你:)
    • @bschmitty,嗨,你得到你想要的了吗?如果是,您能否将其标记为答案,因为它会帮助有类似问题的人? BWT,不需要将Project-A合并到Project-B,因为你已经在step1中在Project-B中添加了Project-A的东西,只需提交给Project-B,它将包含关于Project-A的东西
    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 2015-10-16
    • 2013-02-23
    • 1970-01-01
    • 2019-07-18
    • 2021-10-24
    • 1970-01-01
    • 2020-10-16
    相关资源
    最近更新 更多