59

リポジトリのクローンを作成するとき、これら2つのURLに違いはありますか?

  1. .git拡張子なし:

    git clone http://foo/repo
    
  2. .git拡張子付き:

    git clone http://foo/repo.git
    
4

1 に答える 1

49

規則では、ベア リポジトリには.git拡張子を使用し、作業ツリーのあるディレクトリは除外する必要があります。Git はあまり気にしませんが、これをかなり透過的にする便利なメソッドがいくつかあります。

たとえば、/tmp/foo.gitという名前のリポジトリがあり、 を呼び出すと、Git は最初に/tmp/foogit clone file:///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 プロトコルと同じように機能することが示されていますが、マイレージは他の Web サーバーでは異なる場合があります。

于 2012-06-17T06:40:20.367 に答える