是否可以将 git remote url 设置为存储库中的子文件夹?

Adi*_*tya 5 git github

对于存储库(例如“测试”),其文件夹结构为

???项目 1
??? 项目 2
??? 项目3

我可以为 project1 设置远程 url 吗?

tor*_*rek 4

不,又是。也就是说,您可以设置它,但它不会执行您想要的操作,无论它是什么。

远程只是一个充当密钥的短名称

  • origin=> remote.origin.url,remote.origin.fetch
  • xyz=> 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 fetchgit push传输整个提交,文件会随提交一起出现,但它们具有您在提交中指定的名称。

但是,您可以进行包含Project1. 签出这样的提交将删除所有Project2Project3文件,然后签出包含所有文件的提交将带回所有Project2Project3文件。但是,当您运行git pushor时git fetch,您可能会发送和接收包含所有文件的提交以及包含Project1的任何提交,因此这可能不是一个好主意。

如果您将每个项目存储在单独的 Git 存储库中,那可能会得到您想要的东西。尽管我通常建议避免使用子模块,但您可以将每个存储库作为单个超级项目的子模块,该超级项目除了协调所有子模块外什么也不做;这条特定的路径是可行的。