2013-03-21 54 views
1

我是塔的新手。我试图做的是防止将repo推送到我们的远程,如果repo中名为index.html的文件包含字符串“1234”。塔(GIT)自定义脚本?

有什么建议吗?

而且,如果塔不允许这样做,当从终端直接使用git时可以这样做吗?

谢谢

回答

1

所以我找到了适合我的解决方案。

就预推钩而言,它确实存在。 (这只是回答VonC留下的评论)。

从git 1.8.2开始,可以运行预推钩。所以,当我尝试推送时,我正在做的是从pre-push钩子中以非零值退出,并且在预推动钩子中指定的某个文件包含某个字符串。

所以我想这就是我需要做的。我可以看到,在服务器端做到这一点更好,但在这种情况下,我需要它以这种方式工作。

所以,通过使用git 1.8.2,可以通过使用预推钩来轻松完成。

+0

非常好。我错过了在https://github.com/git/git/blob/master/Documentation/RelNotes/1.8.2.txt。 +1我已经编辑了相应的答案。 – VonC 2013-03-22 20:38:18

1

它似乎并不涉及到塔,但更多的连接到远程回购本身:
你可以设置(在远程回购)的update hook,这将检查每个提交,并确保内容不是错误的。
请参阅“Prevent pushes to git containing tabs in certain files (e.g. *.cpp, *.h, CMakeLists.txt)”中的示例。

一个客户端的钩状“推送预钩” WDEL>不存在的,所以最好是mutualize在远程侧控制,以便执行用于任何下游回购推到该控制说远程回购。

推预钩实际存在since git1.8.2 5March第八,2013),但是这需要将其部署到每个下游回购相比,实施同样的策略中一个地方(上游回购),这是不是最佳的。
这就是说,如果你有一个下游回购你正在使用(即你自己的本地回购),一个预先确认的钩子可以派上用场。

+0

因此,我已经阅读了一些钩子文档,并且仍然在努力获得对此的更好理解,但是,可以使用预推式钩子让我使这发生在客户端并通过返回中止推送钩子中的非零值? – zumzum 2013-03-21 19:43:11

+0

@zumzum一个“预推”钩子不存在**:为* all *下游回购强制一个策略,最好在远程端添加一个钩子。 – VonC 2013-03-21 21:08:50