在repos上分发的Git属性(涂抹,干净)

时间:2014-05-15 00:09:10

标签: git

有没有办法将smudge和clean hook分发到远程存储库?它存储在.git\config中,因此不会被Git跟踪。

我们的客户使用稍微不同的环境和SVN(!)所以我们必须分支,以便我们可以合并我们的更改。如果我可以分享那些用于涂抹和清洁的钩子,那就太好了。

2 个答案:

答案 0 :(得分:1)

是的,答案是.gitattributes。可以在man-files中找到有关如何设置过滤器的更客观的说明。

将您的属性放入.gitattributes - 文件并将其保存到项目文件夹中。然后,您就可以像跟踪其他文件一样跟踪和提交它。

不幸的是,更改过滤器本身需要您至少访问一次客户端的.git/config。在我看来,你有两个选择来实现:提供第二个项目特定的配置或更改过滤器调用以调用已交付的脚本。

发送git-config

这是一个简单的方法来版本化git-config的另一部分。我们将在repo-config中添加一个额外的include-path,并在存储库中添加一个额外的配置文件。

这是我在.git/config添加另一个包含的方式:

[include]
  ../.gitconfig

然后你创建了.gitconfig - 文件 - 我用user.name - 设置测试了它:

[user]
  name = Mickey Mouse

之后,您将.gitconfig添加到您的仓库中。尝试使用以下更改:

$ git config user.name
Mickey Mouse

但我必须承认,这个星座是安全风险,因为您可以通过提交覆盖所有配置设置。

另一种可能 - 更安全但更精细的 - 解决方案是在配置中创建过滤器,让它们指向存储库中的脚本。

答案 1 :(得分:0)

一种可能的选择是将它们直接添加到repo以及有关如何将它们复制到.git目录的说明。