【问题标题】:Isolate specific folders from updating on git将特定文件夹与 git 上的更新隔离开来
【发布时间】:2013-04-18 16:46:49
【问题描述】:

我对版本控制没有那么丰富的经验,这是我第一次使用 Git。我们正在使用 BitBucket 和 TortoiseGit,设置并运行。

现在,我希望能够隔离一个文件夹(我们称其为“资源”),该文件夹将保存一些资源文件,例如图形、脚本、声音,这些对项目的编码人员来说并不重要。编码员必须无法从该文件夹中提取或同步。

但是,另一个团队应该能够操纵这个“资源”文件夹并对其进行更改,同时也能够接收编码人员所做的更改。

我知道有一个创建 .gitignore 列表的忽略函数。但据我了解,此列表将忽略所有用户的文件/文件夹,因此一旦定义为被忽略,没有人将能够有效地访问“资源”文件夹。

另一种方法是将“origin”分支到“coders”分支和“resources”分支。然后“编码器”将向/从远程“编码器”推送和拉取,推送到(但从不从)“来源”,也从不推送到“资源”。 “资源”总是从“原点”拉/推,但绝不会拉/推到“编码员”。

我怀疑这个过程确实需要某种“推送到特定分支列表”选项。

不确定我是否正确,我已经尝试了几个实验,但显然失败了。我看错了吗?对于这种情况,最好的解决方案是什么(最好使用 TortoiseGit)。

【问题讨论】:

    标签: git branch git-branch bitbucket tortoisegit


    【解决方案1】:

    确保不要在该文件夹中放置太多(二进制)“资源”:作为 git 存储库,这些资源将被克隆,它们会显着增加存储库的大小。

    我建议将它们隔离在一个单独的 repo 中,并将该 repo 声明为您的主要开发 repo 的 submodule

    这样,编码人员可以克隆主存储库,而不必(如果不需要)初始化和更新“资源”子模块。
    但如果他们需要,那么 TortoiseGit > Submodule update 就足以将该内容加载到他们的工作树中。

    【讨论】:

    • 感谢您对 VonC 的回答。
    • 抱歉,按输入太早了。感谢您的回答@VonC。所以要明确一点,我知道在本地克隆一个 repo 会克隆它,从而占用本地 HDD 上的空间。但这不应该增加远程仓库的大小,对吧?至于使用子模块,当您提到单独的 repo 时,这实际上意味着我需要在 BitBucket 上为子模块分配一个新的 repo?我相信 BitBucket 提供了一个免费的 repo,所以也许这不是我们目前的最佳解决方案。无论如何,我会调查一下。再次感谢!
    • @ichtyander 您正在本地克隆远程仓库,因此大小相同(远程和本地)。另外,BitBucket 让您拥有任意数量的 public 存储库(只有私有存储库是有限的)。
    • 啊,我明白了。感谢您清理一下,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2023-01-20
    相关资源
    最近更新 更多