您知道是否有办法阻止提交到本地git存储库?在我的构建环境中,我正在通过它运行一些git命令,如果用户在构建期间进行提交,它会中断。
我想在构建过程中锁定存储库,然后在构建完成时解锁。
谢谢!
答案 0 :(得分:2)
这不是Git兼容的工作流程。如果您希望SCM具有锁定功能,请使用集中存储库模型的其他内容。一些支持可选锁的SCM包括SVN,CVS和RCS。
除非您使用配置了core.sharedRepository配置的共享存储库,否则您应该推送到裸存储库并运行任何持续集成或从非裸克隆构建系统。根据定义,任何具有必要权限的人都可以修改任何共享存储库的工作目录,因此如果需要在某个进程的生命周期内确保稳定的工作目录,则不应使用共享存储库。
共享存储库模型肯定存在一些用例。但是,你的不是其中之一。
您当然可以设计自己的脚本来滥用共享存储库模型。例如,您可以在包装脚本中使用信号量文件(例如由 lockfile-progs 包中的 lockfile 创建的文件)或 flock 。在开始一些长时间运行的构建过程之前,关闭对共享目录的写入或执行权限。这是一项非常小的回报,因为你可以通过减少克隆工作获得同样的好处。但是,它在技术上是可行的,所以我在这里提到它是为了完整性。
答案 1 :(得分:2)
查看.git / hooks / pre-commit.sample。通过操作此挂钩,您应该能够在远程或本地git存储库上禁用提交操作。
答案 2 :(得分:1)
你应该克隆存储库并在fork中完成你的工作 本地磁盘上的分叉可以使用符号链接来节省时间和空间。
Git没有锁定的概念。