如何使用git服务器端钩子和gitlab更改提交的内容
我已经在ubuntu 12.04上手动安装了gitlab 有些存储库包含PSD(Adobe photoshop文件)。 我们希望实现的是,每当有人将提交推送到gitlab服务器时,它都会自动:如何使用git服务器端钩子和gitlab更改提交的内容,git,gitlab,Git,Gitlab,我已经在ubuntu 12.04上手动安装了gitlab 有些存储库包含PSD(Adobe photoshop文件)。 我们希望实现的是,每当有人将提交推送到gitlab服务器时,它都会自动: 将PSD转换为PNG 移动到PSD到dropbox(或其他云存储) 从提交中删除PSD 将PNG添加到提交中 注意:步骤2与此问题无关 无论如何,我们已经设法下载了将PSD转换为PNG的工具,其中包括安装Ruby、一些Ruby Gems和PSD.rb(如果有人感兴趣,可以使用Google PSD.rb)
在服务器端是否有其他方法来执行上述操作?或者我们可以探索其他方法?您不能修改提交 您可以拒绝提交,这样做之后,您可以根据收到的内容进行新的和不同的提交 也就是说,您将接收到的内容保存到其他位置,拒绝提交,然后将保存的内容进行更改并重新提交。对于试图推送某个内容的用户,看起来他们的提交被拒绝了,然后其他人(打字速度非常快)完成了与他们相同的工作,但在阅读“拒绝”消息时,将其清理并提交了稍微不同的版本 请注意,我不是特别推荐这个想法,也不打算编写代码来实现它,但它应该可以正常工作 您还可以使用不同的两步方法,其中涉及两个不同的服务器:
- 服务器“纯”只提供PNG内容,不接受用户的推送
- 服务器“converter”接受用户推送,接受用户推送(此处无拒绝),然后清理用户并将清理后的版本推送至“pure”
这与第一个系统的过程完全相同,只是每个人都更清楚它是如何工作的,用户必须知道如何从“纯”获取和推送到“转换器”。在第一个系统中,一个git存储库和一台机器同时充当“纯”(交付清理过的内容时)和“转换器”(接收并秘密保存推送,但随后拒绝推送)。在服务器上重写提交是个坏主意,原因与重写历史相同 另一个选项是在dropbox上设置和存储PSD 服务器提交钩子可以拒绝任何具有非git附件的推送PSD。
在客户机上,预提交钩子可以自动将PSD添加到git附件中,git部分的可能重复项,然后针对GitLab钩子规范,这可能是完全重复的:在发布我的链接之前,我已经检查了这些链接。它们是相似的问题,但仍然不同于我试图实现的目标