从git更新中隔离特定文件夹

3
我对版本控制不是很熟悉,这是我第一次使用Git。我们正在使用BitBucket和TortoiseGit,并已经将其设置好并运行。
现在,我想能够隔离一个文件夹(让我们称其为“资源”),其中包含一些资源文件,例如图形、脚本、声音等,这些文件对项目中的代码编写者并不是非常关键。编写者不能从该文件夹中拉取或同步。
但是,另一个团队应该能够操作这个“资源”文件夹并对其进行修改,同时也能够接收编写者所做的更改。
我了解到有一个忽略功能可以创建.gitignore列表。但是据我所知,这个列表会忽略所有用户的文件/文件夹,因此没有人能够有效地访问“资源”文件夹,因为它定义为被忽略。
另一种方法是将“起点”分支成“编写者”分支和“资源”分支。然后,“编写者”将推送和拉取到远程“编写者”,推送到(但永远不会从中拉取)“起点”,并且永远不会推送到“资源”。 “资源”将始终从“起点”拉取/推送,但永远不会推送到“编写者”。
我怀疑这个过程实际上需要某种“推送到特定分支列表”的选项。
我不确定自己对它的理解是否正确,尝试了几次实验但显然失败了。我是否以错误的方式考虑了它?在这种情况下,什么是最好的解决方案(最好使用TortoiseGit)?
1个回答

1
确保您不要在那个文件夹中放置太多(二进制)“资源”:作为git仓库,这些资源将被克隆,并且它们可能会显著增加仓库的大小。 我建议将它们隔离到一个单独的仓库中,并将该仓库声明为您的主开发仓库的子模块。 这样,程序员可以克隆主仓库,如果他们不需要,就不必初始化和更新“资源”子模块。
但是,如果他们需要,那么TortoiseGit > Submodule update就足以加载其工作树中的内容。

抱歉,按下回车键太早了。谢谢你的答复@VonC。所以,明确一下,我理解在本地克隆一个仓库会占用本地硬盘空间,但这不会增加远程仓库的大小,对吗?至于使用子模块,当你提到一个单独的仓库时,这实际上意味着我需要在BitBucket上为子模块分配一个新的仓库?我相信BitBucket提供一个免费的仓库,所以也许现在对我们来说这不是最佳解决方案。不过,我还是会进一步研究一下。再次感谢! - ichtyander
@ichtyander,您正在本地克隆远程存储库,因此大小相同(在远程和本地上)。此外,BitBucket允许您拥有尽可能多的公共存储库(仅私有存储库受限)。 - VonC
啊,我明白了。谢谢你稍微解释一下,我非常感激。 - ichtyander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接