当前位置: 首页 > 知识库问答 >
问题:

我可以用某种失败路径链接git子模块吗?如果SSH克隆失败,git应该能够使用https克隆

吕越彬
2023-03-14

(这主要是我在使用GitHub时突然想到的,因此我不太介意任何解决方案是否特定于GitHub。但问题本身并不特定于GitHub,任何解决方案也不一定都是。)

您总是可以使用https克隆公共GitHub回购:

git clone https://github.com/my-user-name/SDL-mirror

如果您有GitHub知道的SSH密钥,还可以使用

git clone git@github.com:my-user-name/SDL-mirror.git

(我认为在使用Bitbucket时,类似的选项也适用。)

在添加子模块时,也有这两个选项。

当添加子模块时,您通常会添加SSH版本,因此您可以在原位测试更改后直接从子模块提交。

但如果有人试图克隆你的回购协议呢?他们可能没有对GitHub的SSH访问权。所以他们会用HTTPS URL克隆你的回购协议。。。然后,当Git尝试使用SSH URL克隆子模块时,就会出现问题。

如果您使用Git回购进行系统预配,这也可能是一个问题。

理想情况下,如果可能的话,我希望Git从SSHURL中提取,如果没有,则从HTTPS URL中提取。这应该会让每个人都摆脱困境。有什么办法能让它做到吗?

共有1个答案

瞿子濯
2023-03-14

您可以做的是:

>

git config --global url.ssh://git@github.com/.insteadOf https://github.com/

这样,对于本地repo,您总是使用ssh,但是对于克隆您的repo的任何人,只有https引用。

 类似资料:
  • 尝试访问私有公司 tfs。他们通过向Windows用户(域\登录)授予适当的权限来授予我访问权限。 我可以很好地访问tfs的web界面,浏览存储库和其他东西。 但当我试图逃跑 它失败了 尝试与家用PC没有公司网络的东西 - 同样的错误。 在PowerShell、Git Bash、Clone via VisualStudio中尝试过-同样的错误。 SSH关闭(给定请求超时)。 网络 企业助手试图帮助

  • Jenkinsssh代理插件 我创建了一个新的Ubuntu构建节点,名为。我在节点中有以下文件 现在我有一条Jenkins管道可以做到这一点 我在我工作的控制台上得到这个 我知道我使用了正确的信条,并且存储库存在。我有另一个构建节点,它在那个节点上工作,所以我知道我的Jenkins设置正确,问题出在新的构建节点上。 有什么解决办法吗?

  • 我正在Windows 7上运行Netbeans 7.2,无法克隆repo。我之前使用的是Windows XP和Netbeans 7.1,没有任何问题。 我一直使用的过程是打开Pageant并加载我的密钥。然后在Netbeans中,我组建了一个

  • 我很难在git上克隆回购协议。我已经尝试了好几天,尝试了很多解决方案(在大多数情况下,问题略有不同,但似乎适用),但没有任何效果。 我试图关闭防病毒和防火墙,但没有帮助。我也尝试过卸载和重新安装网络适配器驱动程序(并重启计算机),但没有成功。 据我所知,这是某个地方的网络问题,因为远程服务器一直挂断,但我无法解决这个问题。 使用git clone-v--进度似乎给出了与git clone相同的输出

  • 问题内容: 我有一个git repo,其中有一个子模块。两者都属于BitBucket上的团队。我的jenkins机器是带有git插件的AWS Windows服务器。我正在使用SSH密钥进行身份验证。我有三个詹金斯工作。一个克隆主仓库。这是成功的。一个将自己克隆第二个存储库(该存储库将用作子模块)。这也是成功的。在我的第三个构建工作中,我告诉jenkins递归更新子模块。这将失败并显示公钥错误。如果

  • 到现在为止,读者已经零略到Git的灵活性以及健壮性。Git可以通过重置随意撤销提交,可以通过变基操作更改历史,可以随意重组提交,还可以通过reflog的记录纠正错误的操作。但是再健壮的版本库设计,也抵挡不了存储介质的崩溃。还有一点就是不要忘了Git版本库是躲在工作区根目录下的.git目录中,如果忘了这一点直接删除工作区,就会把版本库也同时删掉,悲剧就此发生。 “不要把鸡蛋装在一个篮子里”,是颠扑不