克隆期间更改远程URL

时间:2019-02-03 01:20:49

标签: git bitbucket git-clone

克隆期间是否可以更改/替换存储库URL?

我有主服务器和镜像Bitbucket服务器,我的目标是在不使用户记住镜像URL的情况下尽可能使用本地镜像(这与主机名和路径与main略有不同)。我希望它对开发人员完全透明。

我可以控制全局配置文件。

不幸的是,我无法使用DNS来完成这项工作。

2 个答案:

答案 0 :(得分:0)

您不能在克隆期间更改URL。您为Git提供URL,并从URL复制。该连接是开放的;没有任何改变。一旦克隆完成井,从技术上来说,只是克隆开始之前,但它从外面看起来,Git的相同写入URL的的克隆的.git/config停,而现在,<在克隆之后,您可以随时更改存储的URL。

要执行此操作,请随时在克隆中运行git remote set-url name-of-remote new-url。 Git将新的URL存储在该远程名称下(可能您只想在此处使用origin)。下次使用该远程名称时,Git会将其转换为存储的URL。这是技术上可以运行这个命令的,而git clone仍在运行,但它不是为git clone是要更多的东西写一个好主意.git/config和两次写入到.git/config可以相互碰撞(在它们中的哪一个的情况下将会失败,这是不可预测的哪一个)。

答案 1 :(得分:0)

我想您希望为您的存储库设置一个远程引用,如果有一个远程URL,则使用一个远程URL,但如果第一个不可用,则使用另一个远程URL(也许您担心网络)连接到第一个远程失败)。

我不知道这样做的方法,并且我不希望有这样做的方法。通过将两个遥控器视为一个遥控器,您可能最终会遇到两个遥控器不同意的情况,并且在克隆/拉动时会得到不同的结果。

我建议在配置文件中设置两个单独的远程引用-每个远程URL一个。叫第一个类似origin,第二个叫origin-backup。然后尝试工作流,您(或您的团队开发人员)从中选择要从中拉出的遥控器。

不幸的是,您和您的团队将不得不手动处理两个遥控器之间的任何差异。也许有一种方法可以做您想做的事情,但我认为这是不可能的。