在特定情况下,我需要处理由2个git repo组成的特定程序包,但仍然能够在每个repo上提交/推送。
这是一个简化的示例:
- repoA 和目录 dirA , dirB , dirB / dir2
- repoB 和目录 dirC , dirB / dir1
- 我需要使用一个包含以下内容的软件包: dirA , dirB , dirB / dir1 , dirC < / li>
这是我所做的:
- 我首先克隆了两个存储库。
- 然后我在repoA克隆目录中添加了一个.git / info / exclude文件,其中包含:dirB,dirC
- 然后,我在repoA克隆dir 2中创建了指向repoB dirB / dir1和dirC的符号链接。
- 最后,我从repoA克隆dir dirB / dir2中删除了。
这是我从repoA克隆目录中得到的内容:
- dirA
- dirB / dir1(到repoB的符号链接)
- dirC(到repoB的符号链接)
-
git status
在dirB / dir2中提供已删除的文件
这对于repoB很不错,因为我可以毫无问题地提交并推送更改。但是对于repoA,我当然不想提交/推送dirB / dir2删除... git中是否有任何东西可以将dir保留在索引中,但不将其显示在工作树中?
目前,我看到了两种可能对我们不太好的解决方案:
- 创建第三个目录,其中包含指向repoA和repoB中所需文件的符号链接...但这会导致很多额外的工作,因为repoA实际上包含很多目录!
- 从没有dirB / dir2的develop分支在repoA中创建一个专用分支。为了简化将来的合并,请合并新分支以进行开发,而无需删除dirB / dir2。不太好,因为它会迫使我们需要在每个repoA分支上创建一个专用的包分支。
任何帮助都会非常感谢O:)