我有一个问题,有一个css样式文件,这个文件不应该被开发团队中的任何人修改,只有管理员(我):)
有办法锁定文件。我在提交中看到,文件已被更改,但我不希望发生这种情况。
我能做什么?
我使用gitblit服务器,git使用git-extensions。
非常感谢你的回答。
答案 0 :(得分:1)
这必须在setup a hook within Gitblit上在服务器上完成。检查one of the provided post-receive hooks。收到推送数据后服务器运行post-receive挂钩,如果返回false,则推送将被拒绝。
当调用脚本时,您会获得一个refs列表,请参阅示例中的如何获取提交列表
这应该让你开始获得推送中包含的文件列表:
def commits = JGitUtils.getRevLog(repository, command.oldId.name, command.newId.name)
for commit in commits:
def diffs = git.diff().setNewTree(commit.getTree())
.setOldTree(commit.getParent(0).getTree())
.call();
for diff in diffs:
def path = diff.getOldPath();
//check the extension on the path, and return false to reject the push