【问题标题】:Remove push permissions from a git repository从 git 存储库中删除推送权限
【发布时间】:2015-07-10 15:43:29
【问题描述】:

我在 Github 上创建了一个私有存储库,并打算在我的 fork 中完成我的所有工作,并将我的 fork 中的拉取请求提交到主存储库。

我已经配置了我的遥控器,所以 origin 指向我的 fork,upstream 指向主存储库(这样我可以让我的 fork 的主分支与主存储库保持同步)。

我想保持对 Github 上存储库的完全访问权限,但为了安全起见,我想禁用我直接从本地计算机推送到 origin 的能力。

这可以通过在我的本地机器上对我的遥控器进行配置来实现吗?

【问题讨论】:

标签: git github


【解决方案1】:

我想保持对 Github 上存储库的完全访问权限,但为了安全起见,我想禁用我直接从本地计算机推送到源的能力。

只需使用不允许更新的git:// 协议配置您的遥控器。例如,如果我有:

$ git remote -v
origin  git@github.com:larsks/py-st7565.git (fetch)
origin  git@github.com:larsks/py-st7565.git (push)

我可以跑:

$ git remote set-url --push origin git://github.com/larsks/py-st7565.git

如果我尝试git push,我会得到:

$ git push
fatal: remote error: 
  You can't push to git://github.com/larsks/py-st7565.git
  Use https://github.com/larsks/py-st7565.git

【讨论】:

  • 嗯,因为它是一个私有存储库,但是当我进行更改时它是不可见的:$ git pull upstream master fatal: remote error: Repository not found.
  • 您可以只使用--push URL,正如@ehed 在他的编辑中所建议的那样(ehed:最好留下评论,而不是以改变答案的方式编辑某人的答案)。当然,在这种情况下,甚至不需要将其设置为有效的 URL。
【解决方案2】:

好的,解决方案是按照 larsks 所说的做,但要设置 --push 标志:

git remote set-url --push origin git://github.com/larsks/py-st7565.git

这样可以保持 fetch 遥控器完好无损。

谢谢!

【讨论】:

    猜你喜欢
    • 2012-11-20
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2011-09-21
    相关资源
    最近更新 更多