我有n
个存储库,其中包含我希望在我的服务器目录中提供的内容。将动态扫描服务器目录以查找用于处理该内容的内容。
但是,我想保留我想要导入的存储库。我不想合并或执行任何单向任务。源存储库确实应该保持独立。
当我在我的服务器目录上git pull
时,我想更新我订阅的所有文件。请注意,它不一定是git pull
,但您可以了解我的意思。
它应该是这样的(有更多的文件和存储库,它只是一个例子):
- github
- repo 1 with 10 files
- repo 2 with 5 files
- server
- content-directory
- 2 files "subscribed" out of repo 1
- 1 file "subscribed" out of repo 2
github
存储库的更改应该在我执行git pull
之后立即应用于服务器目录文件。
有一种简单的方法吗?
我的方法:在content-directory
中创建这些存储库的克隆但是我会获得整个存储库,尽管我只需要一些文件。 .gitignore
阻止上传,但不会阻止上传。
也许已经有一种我不知道的好方法。
答案 0 :(得分:3)
据我所知,没有本机Git功能,但您可以使用symlinks获得所需的结果,这些结果可在POSIX系统上使用also on Windows with NTFS。
我将在这里假设一个Linux系统。
在您的内容目录之外的某处检查您的存储库:
$ cd /some/directory/repos
$ git checkout https://github.com/user/repo-a.git
$ git checkout https://github.com/user/repo-b.git
$ ls
repo-a/ repo-b/
现在,将您想要的文件从每个存储库链接到服务器的内容目录:
$ cd /path/to/server/content/directory
$ ln -s /some/directory/repos/repo-a/file1 .
$ ln -s /some/directory/repos/repo-a/file2 .
$ ln -s /some/directory/repos/repo-b/file1 file1b
文件显示在目录中,但如果您使用长列表(-l
),您可以看到它们确实是指向其他文件的链接:
$ ls
file1 file1b file2
$ ls -l
file1 -> /some/directory/repos/repo-a/file1
file1b -> /some/directory/repos/repo-b/file1
file2 -> /some/directory/repos/repo-a/file2