2012-06-17 6 views
29

リポジトリをクローンすると、これら2つのURLに違いはありますか? .git拡張子なし一部のリポジトリURLは.gitで終わるのはなぜですか?

  1. :.git拡張子を持つ

    git clone http://foo/repo 
    
  2. git clone http://foo/repo.git 
    
+0

GithubのURLを参照する場合は、.gitはオプションです – gorelative

+5

あなたは[this](http://stackoverflow.com/a/1734421/164966)の回答に興味があるかもしれません。具体的には* reponame.gitの命名規則は通常、裸のリポジトリ用に予約されています... * – R0MANARMY

答えて

30

大会が.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機能のほとんどはGitではなくWebサーバーからのものです。 Smart HTTP transportを使用していても、私はほとんどの魔法がサーバー側のLocationMatchディレクティブで起こっていると思われます。理論を除いて、GitHubに対するいくつかの簡単なテストでは、SSHとGit procotolsと同じように動作することが示されていますが、あなたの走行距離は他のWebサーバーによって異なる場合があります。

+1

スマートなHTTP機能はgit側のラッパーであると考えていましたので、サーバー側が単にHTTP応答を提供しています。 https://github.com/blog/642-smart-http-support but http://www.kernel.org/pub/software/scm/git/docs/v1.7.3/git-http-backend.html suggest私は間違っていた、それはサーバー機能のビットです。 –

関連する問題