【问题标题】:add a local repository as a sub directory of remote repository添加本地存储库作为远程存储库的子目录
【发布时间】:2012-01-19 23:58:59
【问题描述】:

假设我有一个具有以下结构的远程存储库 (git@server:project.git):

./client
./server

然后我使用git init; git add . ; git commit -m "init check in " 在目录~/myproject/test 中创建了一个本地存储库。我想将此本地存储库作为子目录testclientserver 并行推送到远程存储库,即

./client
./server
./test

我希望本地的所有签入历史都可以保存在远程存储库中。有什么办法可以做到这一点?谢谢!

【问题讨论】:

    标签: git


    【解决方案1】:

    通常的解决方案是使用subtree merge strategy

    详见“Git subtree merge strategy, possible without merging history?”。


    另一种解决方案是将本地存储库声明为远程存储库的子模块。

    为此,您需要:

    • 将本地存储库作为独立存储库推送到远程服务器上
    • 在本地克隆git@server:project.git
    • git@server:test.git 添加为a submodule

    但如果您的测试文件与您的项目密切相关,那可能不是最佳解决方案。

    【讨论】:

      【解决方案2】:

      以前的答案对我不起作用(需要更多详细信息:这里是 Git 初学者 ;-),而 https://git-scm.com/book/en/v2/Git-Tools-Submodules 则通过一步一步的方法完美地做到了。它还解释了合并/丢弃历史记录的两种方法。

      【讨论】:

      • 链接已于 2016.03.27 断开。
      • 截至 2017.08.24 链接正常。
      猜你喜欢
      • 2020-01-09
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 2020-10-23
      • 1970-01-01
      • 2011-09-16
      • 2017-09-09
      相关资源
      最近更新 更多