**TLDR:**是否有一种方法可以运行git clone [url]
,其中URL仅为git命令临时硬编码?
我遇到了这样一个场景:云中的托管环境(Azure、AWS等)可以被烧毁,然后在短时间内(比如10分钟内)使用相同的名称重新创建。这导致重复使用DNS名称(即mycolwebsite.azurewebsites.com)。
由于机器上缓存的DNS条目现在已过时,因为重新创建的环境可能位于不同的外部IP后面,因此,指向该DNS名称的git克隆/git推送命令必然会导致失败。
通过云托管提供商工具,我可以查询外部IP,并对/etc/hosts
进行注入/弹出。这是一个有效的解决方案,但出于许多原因,这是一种“坏主意”。我无法轻松地将IP指向端点,因为服务器不会响应裸IP,只响应主机名(根据我收集的信息)。
我想很多人在云中打开和烧毁dev示例时都会遇到这种情况——有没有更好的方法来处理基本上是DNS缓存问题的问题?
2条答案
按热度按时间xggvc2p61#
@大卫说:在AWS中,你可以选择弹性IP。在Azure上,您可以将static Public IP与VM关联。
根据您的场景,您可以取消IP与原始VM的Map,并将IP与新VM关联。IP地址不会更改。
更新:
您可以使用Azure Cli 2.0解除公共IP的关联或将公共IP与VM关联。您可以参考以下示例:
您可以使用
-h
获取帮助。ddrv8njm2#
**我真正想做的是:**将请求固定到IP地址。
这个能力在2022年被添加到git,在提问后5年多。参考:[1][i1j 1k1l]
解决方案:
http.curloptResolve
:为IP地址DNS条目提供cURL自定义主机名+github.com:443:192.30.255.112
:[+]主机:端口:地址[,地址]+
使DNS条目不是永久的--resolve
,cURL
中存在类似/相同的概念。要测试/验证,请启用详细的git日志记录:
$env:GIT_CURL_VERBOSE=1$环境:GIT_TRACE=1$环境:GIT_TRANSFER_TRACE=1;git-c http://curloptResolve=“+github.com:443:192.30.255.112”克隆https://github.com/rtyley/small-test-repo