git存储库的过滤版本

时间:2011-08-30 05:10:20

标签: git

我有一个问题,我们需要向外包商提供我们的git存储库的过滤版本。

因此,我们需要维护一个我们的git存储库版本,该版本的某些关键字可以找到并替换为其他关键字。

这背后的原因是我们不希望外包商在我们客户名称的论坛中粘贴代码,就像过去发生的那样。

如果git可以动态暴露这样的东西会很酷,但我想这是不可能的,因为它会改变所有的SHA ID。

我想解决方案是有两个独立的git存储库,它们以某种方式保持同步。同步需要2路。因此,当我们对代码库进行更改时,这些更改会被推送到已过滤的代码库(并在路上进行过滤),如果外包商进行更改,那么这些更改将被推送到我们的存储库,但在返回途中未经过滤。 / p>

我们可能会和樱桃采摘一起讨论一些东西等等。但我认为让它变得可靠会有一些工作要做。我认为它在概念上类似于git-svn。

是否有可以产生这种结果的工具?

1 个答案:

答案 0 :(得分:1)

正如Owen在评论中提到的那样,正如我在the answer中所说的那样,这是filter driver的工作。

filter driver

在你的情况下,你会:

  • 有一个特殊的分支,其中git属性声明了outsourcerscript
  • 在该分支中维护一个能够替换这些关键字的外包笔记
  • 合并您的工作,然后签出该分支以获取已过滤的工作树
  • 将该工作树的内容添加到您需要与外包商沟通的单独仓库中。

对于来自外包商的更改,您可以将它们添加到导入分支,其中clean脚本将在提交时恢复正确的关键字。
然后将该导入分支合并到通常的工作分支。