问题描述
问题场景:服务器上的git分支为master,但是有时候可能误操作切到别的分支(但这不是问题的重点)。就是问问大神有没有什么办法,在服务器上默认为master分支,当用git checkout 切换别的分支的时候提示输入密码。
问题解答
回答1:我猜你是把直接用git来部署了吧,不是 @xiaoyao9184 说的那种建git服务器的情况。
最简单暴力是让.git/HEAD不可修改:
sudo chattr +i .git/HEAD
但是不行,虽然不能换分支,但是文件会还是被checkout。
或者可以试一下post-checkout hook,checkout之后看是不是master,不是就切回去。
实在不行就fork一个git。
回答2:甭想,服务器上的是裸库,不存在切换分支概念,gitlab也只能做到分支保护非法提交,权限也就精确到库级别