一些库URL为什么结束git的,有些却没有?(Why do some repository URLs

2019-06-25 13:31发布

当我克隆库,是有这两个URL之间有什么区别?

  1. 没有git的扩展:

     git clone http://foo/repo 
  2. 随着git的扩展:

     git clone http://foo/repo.git 

Answer 1:

该约定是git的扩展应该用于裸存储库,并离开了工作树目录。 Git不会很在意,但有几个方便的方法,使这个相当透明。

例如,如果您有名为库和/tmp/foo.git你叫git clone file:///tmp/foo ,Git会首先尝试找到的/ tmp / foo中 。 如果它不存在,它会尝试/tmp/foo.git代替。

不起作用的其他方式。 如果您的目录名为/ tmp目录/ foo和尝试从/tmp/foo.git你会被告知克隆:

致命的:“/tmp/foo.git”不似乎是一个Git仓库

大多数HTTP / HTTPS的功能是从您的网络服务器,而不是混帐。 即使您正在使用智能HTTP传输 ,我相信大部分的魔法发生在服务器端LocationMatch指令。 理论不谈,对GitHub的一些快速的测试表明,它的工作方式是在这方面的SSH和Git网络协议相同,但您的里程可能其他Web服务器上会有所不同。



文章来源: Why do some repository URLs end in .git while others don't?