我在远程存储库中有这个项目,我需要配置它以便我总能发送任何文件(推送),但只有SOME文件可用且可见,也就是说,它总是接收我发送的所有内容但是只返回一些文件夹。
因此,例如明天我将发送F,G和H文件夹,远程存储库将接收它。但之后我将尝试“结账/拉/状态”,并且将再次显示A,B,C(D,E,F,G,H忽略)文件夹,并永远永远。
简而言之,我需要远程存储库来接收所有内容,但只能使其中的一部分可用。
答案 0 :(得分:1)
推送和提取不是文件,它们基于提交。
当您将客户端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 此统计数据就像42.7% of all statistics一样在现场制作。