Git 用户相关历史或用户相关内容

Git user dependent history or user dependent content

我遇到了为我的作品加水印的问题。我想使用 git 存储库向我的客户提供我的工作,但有疑问。我知道如何为我的作品加水印,但问题是如何为每个用户加水印。

有没有办法修改 git 克隆的内容,使其因特定用户而异?

我的第一个想法是以某种方式为每个用户提供不同版本的单一提交,但这个解决方案有几个问题。首先我不知道该怎么做,其次它可能不是可靠的解决方案,因为很容易找到这个提交并更改它。

您知道如何解决这个问题吗?

Is there a way to modify content of git clone that it will differ for particular user?

简短的回答是:不,不可能


长答案是:要可靠修改git clone的内容,并且不能像您描述的那样仅通过删除最后一次提交来撤消,将要求您对从中克隆存储库的 Git 服务器有很多控制权,并且能够拦截克隆操作和接管。

最好为每个客户端创建一个单独的 Git 存储库,其中包含一个单一的提交,扁平化整个历史并且内容已经加水印,并允许客户端克隆该存储库,而不是具有所有历史的原始版本。

当然,此存储库与原始存储库没有任何关系,因此如果您希望客户在存储库中做出贡献,则可能无法满足您的需求 - 即合并客户的更改并不容易回到原来的那个。