【问题标题】:Git disable pushing from local repositoryGit禁用从本地存储库推送
【发布时间】:2012-01-12 14:19:18
【问题描述】:

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

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

【问题讨论】:

标签: git configuration clone


【解决方案1】:

在文件.git/config 的克隆源存储库(称为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

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

【讨论】:

  • 这看起来像我正在寻找的信息。我只是拆解了我的存储库,因为我正在以一种新的方式重新组装它们,但是一旦我将它们重新组合在一起,我就会对其进行测试。
【解决方案2】:

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

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

应该也可以

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 2014-07-10
    相关资源
    最近更新 更多