添加本地存储库作为远程存储库的子目录

pie*_*fou 9 git

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

./client
./server
Run Code Online (Sandbox Code Playgroud)

然后,我创建了目录中的本地仓库~/myproject/test使用git init; git add . ; git commit -m "init check in ".我想这个本地资源库推送到远程的存储库作为子目录test并联同clientserver,即

./client
./server
./test
Run Code Online (Sandbox Code Playgroud)

我希望本地的所有签到历史记录都可以保存在远程存储库中.有没有办法实现这个目标?谢谢!

Von*_*onC 6

通常的解决方案是使用子树合并策略.

有关详细信息,请参阅" Git子树合并策略,可能没有合并历史记录? ".


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

为此,您需要:

  • 将您的本地存储库作为远程服务器上的独立存储库推送
  • git@server:project.git本地克隆
  • 添加git@server:test.git子模块

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