对于存储库(例如“测试”),其文件夹结构为
???项目 1
??? 项目 2
??? 项目3
我可以为 project1 设置远程 url 吗?
不,又是。也就是说,您可以设置它,但它不会执行您想要的操作,无论它是什么。
远程只是一个充当密钥的短名称:
origin=> remote.origin.url,remote.origin.fetchxyz=> remote.xyz.url,remote.xyz.fetch等等。您可以将每个此类键的url设置为您喜欢的任何内容:https://example.com/path/to/repo或/local/path或或任何您喜欢的内容,但使用此值的jellybeans内容是、和。这些都与给定 URL 处的另一个 Git 存储库联系,并来回传输提交(不是文件),或者在 的情况下,告诉您哪些提交和分支名称可用。git fetchgit pushgit ls-remotegit ls-remote
由于git fetch并git push传输整个提交,文件会随提交一起出现,但它们具有您在提交中指定的名称。
但是,您可以进行仅包含Project1. 签出这样的提交将删除所有Project2和Project3文件,然后签出包含所有文件的提交将带回所有Project2和Project3文件。但是,当您运行git pushor时git fetch,您可能会发送和接收包含所有文件的提交以及仅包含Project1的任何提交,因此这可能不是一个好主意。
如果您将每个项目存储在单独的 Git 存储库中,那可能会得到您想要的东西。尽管我通常建议避免使用子模块,但您可以将每个存储库作为单个超级项目的子模块,该超级项目除了协调所有子模块外什么也不做;这条特定的路径是可行的。