如何设置一个repo,以便在克隆时有两个不同的地址用于推送和获取?

时间:2014-02-09 20:14:39

标签: git url git-clone

我有一个git存储库,位于git://server.local/repo.git

使用git clone git://server.local/repot.git进行克隆设置origin,如下所示:

$ git remote -v
origin  git://server.local/repo.git (fetch)
origin  git://server.local/repo.git (push)

但我想这样:

$ git remote -v
origin  git://server.local/repo.git (fetch)
origin  ssh://server.local/realrepopath/repo.git (push)

我希望在克隆时自动完成此操作(无需手动更改远程URL)。

这可能吗?

编辑: 克隆完成后,我不想运行任何命令或脚本。我想在服务器上配置远程URL,以便在克隆存储库后不必手动更改它们。

3 个答案:

答案 0 :(得分:0)

看起来gerrit解决方案仍然是公认的解决方案。查看this answer以了解如何使用简单的脚本完成此操作。

答案 1 :(得分:0)

克隆存储库后,您可以执行

git remote set-url origin git://server.local/repo.git
git remote set-url --push origin ssh://server.local/realrepopath/repo.git

不幸的是,似乎没有办法在新git clone上运行脚本或挂钩(据我所知)。

答案 2 :(得分:0)

命令

git config --global url."ssh://server.local/realrepopath/".pushInsteadOf git://server.local/

应该做的伎俩。