Eseguire git init inizializza due volte un repository o reinizializza un repository esistente?


164

Cosa succede a un repository git esistente quando si esegue git initnuovamente l' emissione ?

Ho creato un repository con git init. Creato un file, aggiungi, esegui il commit. Controlla lo stato (niente da impegnare). Quindi ho creato un altro file, controlla lo stato e vedo che non è tracciato come previsto.

Quindi, diciamo per errore, corro di git initnuovo e ricevo Reinizializzare il messaggio del repository Git esistente .

Ho provato git status, ma mostra lo stesso. Quindi cosa succede davvero?

Reinizializzare un repository git esistente in questo modo può essere dannoso o utile? Perché possiamo git initall'interno di un repository esistente?


FWIW usando Xcode Ho creato per la prima volta il repository locale , poi quando sono andato su Github.com per creare un nuovo repository remoto. Cosa che ho fatto, quindi per collegare il mio repository locale al mio telecomando ... Stavo seguendo i suoi passaggi (forniti su Github.com), il suo primo passo è quello che ho fatto. Presumibilmente era la seconda volta dopo che Xcode lo aveva creato automaticamentegit init
Honey

Risposte:


209

Dai documenti git :

L'esecuzione di git init in un repository esistente è sicura. Non sovrascriverà le cose che sono già lì. Il motivo principale per la riesecuzione di git init è la raccolta di nuovi modelli aggiunti.


110

Questo è descritto nella git initdocumentazione:

L'esecuzione di git init in un repository esistente è sicura. Non sovrascriverà le cose che sono già lì. Il motivo principale per la riesecuzione di git init è la raccolta di nuovi modelli aggiunti.


47

Dalla v1.7.5 ( b57fb80a7 ), git initin un repository esistente ha anche permesso di spostare la .gitdirectory:

Il motivo principale per la riesecuzione di 'git init' è quello di raccogliere i modelli appena aggiunti (o spostare il repository in un altro posto se --separate-git-dir è dato).

"Raccogliere modelli appena aggiunti" significa che tutti i modelli che non sono già stati copiati dalla directory dei modelli verranno ora copiati nella directory git esistente.

"Spostare il repository in un altro posto" significa che, se --separate-git-dirpunta verso un altro posto, la .gitdirectory esistente verrà spostata lì e sostituita da un collegamento.


-1

vuol dire che hai già inizializzato git. perché hai già caricato un file su github da questo percorso. si controlla il percorso, quindi viene creata una cartella con il nome di .git. Questo è il motivo per cui non hai richiesto nuovamente git inizializzato. puoi andare al prossimo passo diretto

git add.

Cartella Git

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.