2013-03-07 13 views
5

Ho un progetto su github che mi piacerebbe rispecchiare sul mio server.Quando si esegue un clone git --mirror dove si trovano i file effettivi?

Ho provato quanto segue: git clone --mirror [email protected]:user/repo.git.

quindi nella directory repo.git, ho la seguente struttura di file (ad esempio, l'uscita di ls):

FETCH_HEAD branches/ description info/ packed-refs HEAD config hooks/ objects/ refs/

Quindi la mia domanda è: dove sono i miei file !? Sembra che ci sia un sacco di cose relative a git, ma non riesco a trovare il codice che ho scritto. Mi manca qualcosa di ovvio?

Btw, git status restituisce fatal: This operation must be run in a work tree ma git branch restituisce i rami. Strano.

risposta

7

Quando si git clone --mirror, produce un repository nudo, quindi non avrà un'area di lavoro. Io uso più spesso lo --mirror per creare un clone di sola lettura del mio repository di lavoro da cui gli altri possano attingere.

Sembra che probabilmente dovresti semplicemente omettere l'opzione --mirror.

Da the git clone man page:

--mirror
configurare un mirror del repository di origine. Ciò implica --bare. Rispetto allo --bare, --mirror non solo esegue il mapping dei rami locali della sorgente ai rami locali della destinazione, ma esegue il mapping di tutti i riferimenti (inclusi rami di tracciamento remoto, note, ecc.) E imposta una configurazione refspec in modo tale che tutti questi riferimenti vengano sovrascritti da git aggiornamento remoto nel repository di destinazione.

Per essere completamente chiari, il repository mirror completo ha l'intero contenuto del repository da cui è stato clonato, ma non ha un'area di lavoro in cui è possibile visualizzare questi file. Se clonavi dal clone mirroring (git clone /path/to/local/mirror_repo.git), avresti ottenuto l'albero di lavoro in quel nuovo repository non nudo.

+0

Non mi sono reso conto che il repository nudo non ha un'area di lavoro. Probabilmente non sono abbastanza familiare con le complicazioni git per capire correttamente questa parte del documento. Grazie. – cpa

+0

Sì, un repository nudo è molto vicino ad essere solo ciò che si trova nella directory .git per un normale repository. – MikeSep