在克隆期间更改远程 URL
Change remote URL during cloning
有没有办法在克隆期间 change/replace 回购 URL?
我有主 Bitbucket 和镜像 Bitbucket 服务器,我的目标是尽可能多地使用本地镜像而不让用户记住镜像 URL(这与主机名和主镜像略有不同小路)。我希望它对开发人员完全透明。
我可以控制全局配置文件。
很遗憾,我无法使用 DNS 来完成这项工作。
您无法在 克隆过程中更改URL 。你给 Git 一个 URL ,它从 URL;该连接已打开;没有什么可以改变的。一旦克隆完成——好吧,从技术上讲,就在克隆开始之前,但从外面看起来是一样的——Git 将 URL 写入克隆的 =10=] 并停止,现在,在 克隆之后,您可以随时更改存储的 URL 任意内容。
要做到这一点,在任何你喜欢的时候,运行 git remote set-url <em>name-of-remote</em> <em>new-url</em>
在克隆中。 Git 会将新的 URL 存储在该远程名称下(可能您只想在此处使用 origin
)。下次您使用该远程名称时,Git 会将其转换为存储的 URL。 运行 这个命令在技术上是可行的 而 git clone
仍然是 运行ning,但这不是一个好主意,因为 git clone
正在进行向 .git/config
写入更多内容,而对 .git/config
的两次写入可能会相互冲突(在这种情况下,其中一个会失败,并且无法预测是哪一个)。
我认为您希望为您的存储库设置一个远程引用,其中一个远程 URL 如果可用则使用,但另一个远程 URL 如果第一个可用则使用不可用(也许您担心第一个远程失败的网络连接)。
我不知道有什么方法可以做到这一点,我也不希望有办法做到这一点。通过尝试将两个遥控器视为一个遥控器,您最终可能会遇到两个遥控器不一致的情况,并且 cloning/pulling 您会得到混合结果。
我建议在您的配置文件中设置两个单独的远程引用 - 每个远程引用一个 URL。第一个叫 origin
,第二个叫 origin-backup
。然后试验您(或您的团队开发人员)选择从哪个远程拉取的工作流。
很遗憾,您和您的团队将不得不手动处理两个遥控器之间的任何差异。也许有办法做你想做的事,但我认为这不可能。
有没有办法在克隆期间 change/replace 回购 URL?
我有主 Bitbucket 和镜像 Bitbucket 服务器,我的目标是尽可能多地使用本地镜像而不让用户记住镜像 URL(这与主机名和主镜像略有不同小路)。我希望它对开发人员完全透明。
我可以控制全局配置文件。
很遗憾,我无法使用 DNS 来完成这项工作。
您无法在 克隆过程中更改URL 。你给 Git 一个 URL ,它从 URL;该连接已打开;没有什么可以改变的。一旦克隆完成——好吧,从技术上讲,就在克隆开始之前,但从外面看起来是一样的——Git 将 URL 写入克隆的 =10=] 并停止,现在,在 克隆之后,您可以随时更改存储的 URL 任意内容。
要做到这一点,在任何你喜欢的时候,运行 git remote set-url <em>name-of-remote</em> <em>new-url</em>
在克隆中。 Git 会将新的 URL 存储在该远程名称下(可能您只想在此处使用 origin
)。下次您使用该远程名称时,Git 会将其转换为存储的 URL。 运行 这个命令在技术上是可行的 而 git clone
仍然是 运行ning,但这不是一个好主意,因为 git clone
正在进行向 .git/config
写入更多内容,而对 .git/config
的两次写入可能会相互冲突(在这种情况下,其中一个会失败,并且无法预测是哪一个)。
我认为您希望为您的存储库设置一个远程引用,其中一个远程 URL 如果可用则使用,但另一个远程 URL 如果第一个可用则使用不可用(也许您担心第一个远程失败的网络连接)。
我不知道有什么方法可以做到这一点,我也不希望有办法做到这一点。通过尝试将两个遥控器视为一个遥控器,您最终可能会遇到两个遥控器不一致的情况,并且 cloning/pulling 您会得到混合结果。
我建议在您的配置文件中设置两个单独的远程引用 - 每个远程引用一个 URL。第一个叫 origin
,第二个叫 origin-backup
。然后试验您(或您的团队开发人员)选择从哪个远程拉取的工作流。
很遗憾,您和您的团队将不得不手动处理两个遥控器之间的任何差异。也许有办法做你想做的事,但我认为这不可能。