Php 始终忽略远程存储库中的特定文件夹

Php 始终忽略远程存储库中的特定文件夹,php,git,laravel,github,Php,Git,Laravel,Github,我在远程存储库中有这个项目,我需要对它进行配置,以便始终可以发送任何文件(推送),但只有一些文件可用且可见,也就是说,它始终接收我发送的所有内容,但只返回一些文件夹 推送:发送A、B、C、D和E文件夹 拉/状态/签出:仅显示/读取A、B、C文件夹(忽略D和E) 例如,明天我将发送F、G和H文件夹,远程存储库将收到它。但在那之后,我将尝试“签出/拉取/状态”,并将只显示A、B、C(忽略了D、E、F、G、H)文件夹,并且将永远永远重复 简言之,我需要远程存储库接收所有内容,但只提供部分内容。推送

我在远程存储库中有这个项目,我需要对它进行配置,以便始终可以发送任何文件(推送),但只有一些文件可用且可见,也就是说,它始终接收我发送的所有内容,但只返回一些文件夹

  • 推送:发送A、B、C、D和E文件夹
  • 拉/状态/签出:仅显示/读取A、B、C文件夹(忽略D和E)
例如,明天我将发送F、G和H文件夹,远程存储库将收到它。但在那之后,我将尝试“签出/拉取/状态”,并将只显示A、B、C(忽略了D、E、F、G、H)文件夹,并且将永远永远重复

简言之,我需要远程存储库接收所有内容,但只提供部分内容。

推送和获取不是基于文件的,而是基于提交的

当您将客户端Git连接到服务器Git时,您可以选择这样做是为了获得提交(
Git fetch
),还是为了给它们提交(
Git push
)。但您得到或给出的是整个提交,而不是“文件”或“文件夹”(目录)。因此,你的例子是错误的

请注意,任何一个提交都始终包含其树的完整快照。也就是说,如果您的存储库中有
a/file1.txt
a/file2.txt
b/file3.txt
c/file4.txt
,并且您触摸其中一个文件并进行提交,则新的提交包含所有四个文件的副本。(为了节省空间,它重新使用未修改的原始文件,但提交确实包含所有四个文件。)当您将此提交发送到另一个Git时,您将发送整个提交,而不仅仅是部分提交

如果您将文件放入,他们可以取出文件,默认情况下,他们将获取所有文件。Git确实支持称为“稀疏签出”的东西,您可以(ab?)将其用于这种目的,但很可能这是一种错误的方法

问这个问题的人,大约93.4%的时候,1试图将配置文件存储在他们的存储库中,但不希望将这些配置文件复制到客户端(有时作为初始默认配置除外)。同样,这样做是错误的:让系统存储默认配置文件,而不是存储配置文件。客户端将像往常一样拾取这些默认文件;设置自己的实际配置的客户机将使用其配置,而不是或覆盖默认配置;“我的本地配置”(从未签入此存储库)和“示例和/或默认配置”(签入此存储库)之间不会有冲突



1这一统计数据是当场得出的,就像。

但它“从回购到客户”是否有效?我知道它可以从一个客户到另一个客户,这不是gitignore的目的。这通常不是git的用途。