Quando clono un repository, c'è qualche differenza tra questi due URL?Perché alcuni URL di repository terminano con .git mentre altri no?
senza estensione .git:
git clone http://foo/repo
Con estensione .git:
git clone http://foo/repo.git
Quando clono un repository, c'è qualche differenza tra questi due URL?Perché alcuni URL di repository terminano con .git mentre altri no?
senza estensione .git:
git clone http://foo/repo
Con estensione .git:
git clone http://foo/repo.git
La convenzione è che il .git estensione deve essere usato per bare repository e lasciato fuori dalle directory con un albero di lavoro. Git non gli interessa molto, ma ha alcuni metodi di convenienza che lo rendono abbastanza trasparente.
Ad esempio, se si dispone di un repository chiamato /tmp/foo.git e vi invito git clone file:///tmp/foo
, Git in primo luogo cercare di trovare /tmp/foo. Se non esiste, proverà invece /tmp/foo.git.
Questo corrisponde a non al contrario. Se la directory è denominata /tmp/foo e si tenta di clonare da /tmp/foo.git ti sarà detto:
fatale: '/tmp/foo.git' non sembra essere un repository git
La maggior parte delle funzionalità HTTP/HTTPS proviene dal server Web, non da Git. Anche se stai utilizzando Smart HTTP transport, sospetto che la maggior parte della magia avvenga in una direttiva LocationMatch lato server. A parte la teoria, alcuni test rapidi contro GitHub dimostrano che funziona allo stesso modo dei procotoli SSH e Git sotto questo aspetto, ma il tuo chilometraggio può variare su altri server web.
Ho pensato che la funzionalità HTTP intelligente fosse un wrapper sul lato git, in modo che il lato server fornisse semplicemente una risposta HTTP. https://github.com/blog/642-smart-http-support ma http://www.kernel.org/pub/software/scm/git/docs/v1.7.3/git-http-backend.html suggerire Ho sbagliato ed è un po 'di funzionalità del server. –
se si fa riferimento a URL Github, il file .git è opzionale – gorelative
La risposta potrebbe essere [questa] (http://stackoverflow.com/a/1734421/164966). Specificamente * La convenzione di denominazione di reponame.git di solito è riservata ai repositori nudi ... * – R0MANARMY