2010-06-21 11 views
58

Ho appena eseguito i seguenti comandi sul mio progetto Ruby on Rails:Dove si memorizzano i file Git?

git init 
git add . 
git commit -a -m 'Initial' 

dove viene Git effettivamente memorizzare questo repository? (È sul mio computer locale, ma dove?)

+1

BTW, git commit -a -m 'iniziale' è lo stesso di git commit -am 'iniziale' – math2001

risposta

79

Creerà il repository nella cartella .git nella directory corrente.

+0

Ciao, ho lo stesso problema. Il mio disco ha esaurito lo spazio prima che il git potesse terminare la clonazione e ora non so dove eliminare il vecchio clone. Ero in ~ directory durante l'esecuzione di GIT ma non esiste una cartella .git in ~ o /. Cosa dovrei fare? Grazie. –

+1

Non so perché non ci sarebbe la directory .git. Hai provato 'ls -ld .git' quando in ~? –

+0

Ciao, grazie per la tua risposta. Non ho ancora trovato il clone, ma il secondo git è riuscito e la cartella .git è memorizzata in '~/common/.git' (' common' è il nome del pacchetto). Suppongo che GIT memorizzi i lavori incompleti in una cartella temporanea e in caso di successo si ritrasferisce alla directory corrente. Spero solo che abbia eliminato i download non riusciti. –

6

Nella directory principale del progetto c'è un .git directory nascosta che contiene la configurazione, il repository ecc

+4

una directory nascosta ha molto senso. Questo è quello che sospettavo ma non riuscivo a vederlo in Terminal. Apparentemente l'esecuzione di 'ls' non è sufficiente. Devi eseguire 'ls -a' per visualizzare anche i file nascosti. –

+2

Questo è corretto. E nascosto è definito semplicemente come "inizia con". –

+0

Quel "dotfile" è nascosto è probabilmente solo ovvio per chi ha familiarità con i sistemi basati su * nix, ma sì. –

2

In una directory .git nella radice del progetto. A differenza di altri sistemi di controllo delle versioni, in particolare CVS, non ci sono directory aggiuntive in nessuna delle sottodirectory.

25

Per essere un po 'più completo, Git lavora con:

  • il albero di lavoro (la cui radice dell'essere dove hai fatto un git init)
  • "percorso del repository Git" (dove c'è un .git, che conterrà le revisioni di tutti i file)

GIT_DIR è una variabile di ambiente, che può essere un percorso assoluto o un percorso relativo alla directory di lavoro corrente.

Se non è definito, il "percorso del repository git" è per default nella directory principale del vostro albero di lavoro (ancora una volta, in cui hai fatto un git init).

Si può effettivamente eseguire qualsiasi comando Git da qualsiasi luogo dal disco, a condizione di specificare il percorso albero di lavoro e il percorso del repository Git:

git command --git-dir=<path> --work-tree=<path> 

Ma se li si esegue in una delle sottodirectory di una Git repository (senza GIT-DIR o percorso dell'albero di lavoro specificato), Git cercherà semplicemente nelle directory corrente e padre fino a quando non troverà un .git, supponendo che questo sia anche la directory radice dell'albero di lavoro e utilizzi quello .git come unico contenitore per tutte le revisioni dei tuoi file.

Nota: .git è anche nascosto in Windows (msysgit).
Si dovrebbe fare un dir /AH per vederlo.
git 2.9 (June 2016) allows to configure that.

+0

Certo, ma dove sono le versioni dei file del tuo codice? Se scambio i rami, come fa a prendere quelle informazioni sui rami? Sembra essere una risposta più completa (forse con una risposta più precisa "dove git store _changes_" rispetto agli OP?, Forse) [qui] (http://superuser.com/a/159338/114388) e [qui] (http: //stackoverflow.com/questions/5176225/are-gits-pack-files-deltas-rather-than-snapshots). Non sono sicuro che valga la pena di essere modificato. – ruffin

+0

@ruffin: buoni collegamenti, ma come hai notato, non * esattamente * la domanda dell'OP. – VonC

13

Se siete su una macchina inglese di Windows, il percorso di archiviazione predefinito del Git sarà C:\Documents and Settings\< current_user>\, perché su Windows le impostazioni locali Git predefinite risiede a C:\Documents and Settings\< current_user>\.git e così Git crea una cartella separata per ogni repo/clone a C:\Documents and Settings\< current_user>\ e ci sono tutte le directory del progetto clonato.

Ad esempio, se si installa Symfony 2 con

git clone git://github.com/symfony/symfony.git 

la directory Symfony e il file sarà a

C:\Documents and Settings\< current_user>\symfony\ 
+1

Stai parlando della directory 'HOME' di git bash. Se cambi directory, ovviamente i repository clonati vengono creati nella directory da cui si chiama 'git clone'. Ciò che in realtà risponde alla domanda è che git memorizza i file in una cartella chiamata '.git' all'interno del repository, ovunque tu abbia scelto di clonarlo. – Shahbaz

+0

in 'Windows 8.1':' C: \ Utenti \ nome_utente \ .project_name' o chiama da 'Esegui'' ... \. Nome_progetto'. –

2

anche io non riuscivo a trovare il mio repository git. Sto usando Windows 8 e ho creato il mio repository (per errore) sotto C:\Program Files (x86)\Git. Potrei vedere la cartella del repository in bash ma non in cmd o Windows Explorer.

Poi mi sono ricordato della funzionalità "Negozio virtuale" di Windows. La mia cartella di repository è stata effettivamente creata sotto C:\Users\<username>\AppData\Local\VirtualStore\Program Files (x86)\Git\<myrepo> e c'era la mia cartella .git!

+1

Come farlo funzionare 'correttamente' e mettere la cartella dove vuoi? Sto avendo altri problemi/simili, ma penso tutti al virtualstore. – Terry

+0

In Windows Vista e versioni successive, un utente non amministratore non può creare un file in "Programmi", che è comune a tutti gli utenti. Windows creerà invece il file nella cartella 'VirtualStore' dell'utente. La soluzione più semplice è evitare di creare file in cartelle riservate e invece di crearli da qualche parte come in "Documenti". – bouvierr

3

Sono su Windows e ho trovato la mia posizione facendo clic con il tasto destro sul programma Git Bash nel mio menu Start e selezionando Proprietà. La scheda Collegamento mostra il valore "Inizia in:". Per me, era %HOMEDRIVE%%HOMEPATH%, quindi ho aperto un prompt di CMD e ho digitato echo %HOMEDRIVE%%HOMEPATH% per vedere la posizione attuale.

-5

di solito va a cartella Documenti in Windows: C: \ Utenti \ < "nome dell'account utente"> \ Documenti \ GitHub

+1

Github non ha niente a che fare con questo. –

Problemi correlati