Git禁用从本地存储库推送

时间:2011-12-04 12:14:18

标签: git configuration clone

我有一个存储库,其中包含一些核心代码,并且我希望克隆它的每个客户端,因此每次客户端想要升级到最新功能时我都可以执行git pull。

为了不搞砸事情并进行只有一家公司看到的更改,有没有办法只允许在本地存储库中提取?我仍然希望能够从我的开发环境推送对核心存储库的更改,但不希望生产计算机能够推送。

2 个答案:

答案 0 :(得分:15)

在文件.git/config中的clone-source存储库(名为origin)的远程部分中指定不存在的pushurl 。例如:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = <url>
        pushurl = www.non-existing-url.com

或者,如果您不喜欢编辑存储库的配置文件,可以键入:

$ git config remote.origin.pushurl www.non-existing.com

推送时会收到如下错误消息:

$ git push
fatal: 'www.non-existing-url.com' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

当然,您需要编辑每个克隆存储库的配置文件。

答案 1 :(得分:5)

我发现远程命令更有用,所以我不必直接搞乱配置。

git remote set-url --push origin www.non-existing-url.com

也应该有用