【问题标题】:Use one remote for pulling and another for pushing using Git使用一个遥控器进行拉动,另一个遥控器使用 Git 进行推送
【发布时间】:2011-09-14 17:45:11
【问题描述】:

我对 git 越来越熟悉了,但我遇到了一些让我困惑的问题。我们在这里使用本地镜像,因为我们的线路很慢。为了指向镜子,我在.gitconfig里有常用的东西。

当我想推动时,问题就来了。看来我需要一个别名 URL 用于 repo——而不是在 .gitconfig 中重新映射的那个——或者我需要编辑 .gitconfig 以推送到真正的 repo(而不是镜像)。

这确实必须是一种使用模式。我怎样才能使镜子在拉动时无缝并在推动时让它不碍事?

【问题讨论】:

  • @Cupcake 改变了这个问题的含义,它由霍布斯的回答来回答。也许有用,但肯定不是我问的。

标签: git


【解决方案1】:

设置遥控器喜欢

[remote "myrepo"]
url = mirror url here
pushurl = push url here

然后只需将分支上的遥控器设置为那个遥控器。

【讨论】:

  • 您可以通过运行git config remote.myrepo.url ...git config remote.myrepo.pushurl ... 在命令行上进行设置。
  • 哇...这真是太棒了!那个文档在哪里?我想我必须为我使用的每个回购单独做这件事? "insteadOf" 很好,因为它匹配 URL 句柄...
  • 它在git help config。是的,我认为你别无选择,只能按遥控器进行。
  • 嘿,明确一点,这还不是答案。例如,如果我正在使用 repo 工具,我需要某种方式说“对 X 的ALL 请求应该转到我的镜像而不是 X”。我认为可以使用 repo forall -c "..." 和 larsks 的技巧作为解决方法,但我真正想要的是 .gitconfig 中的“角色”,或者 git 的全局 --conf 选项,指定备用配置文件。甚至,我想 .gitconfig 中有一个 pushUrl/insteadOf 对
  • 是的。首先检查一下我没有错过任何东西。让我看看我是否可以实现它...
【解决方案2】:

我有一个很好的解决方法!向 Matthew McCullough 致敬。

事实证明,无论文档怎么说,GIT_CONFIG 环境变量都没有影响。另一方面, HOME 环境变量是 git 在其中查找 .gitconfig 的目录的名称。如果你在 git 命令行中定义 HOME,像这样:

HOME=~/某处 git ...

... git 将从目录“~/somewhere”中找到的 .gitconfig 获取其配置。如果该 gitconfig 没有重写 URL 以将 git 指向镜像,那么您正在与源对话。您可能会这样做它以别名...

【讨论】:

  • 霍布斯的回答对我有用,似乎是正确的方法。
猜你喜欢
  • 2014-08-11
  • 2014-10-28
  • 2020-01-04
  • 2017-08-18
  • 1970-01-01
  • 2014-12-09
  • 2017-12-20
  • 1970-01-01
  • 2013-09-05
相关资源
最近更新 更多