A execução do git init duas vezes inicializa um repositório ou reinicializa um repositório existente?

164

O que acontece com um repositório git existente quando você emite git initnovamente?

Eu criei um repositório com git init. Criado um arquivo, adicionar, confirmar. Verifique o status (nada a confirmar). Em seguida, criei outro arquivo, verifique o status e posso ver que ele não é rastreado conforme o esperado.

Então, digamos, por engano, eu corro git initnovamente e recebo Reinicializar a mensagem existente do repositório Git .

Tentei git status, mas mostra o mesmo. Então o que realmente acontece?

A reinicialização de um repositório git existente dessa maneira pode ser prejudicial ou útil? Por que podemos git initdentro de um repositório existente?

Mr. L
fonte
FWIW usando o Xcode Eu criei o repositório local pela primeira vez e, depois, fui ao Github.com para criar um novo repositório remoto. O que eu fiz, então, para vincular meu repositório local ao meu controle remoto ... Eu estava seguindo suas etapas (fornecidas no Github.com), sua primeira etapa foi a git initque fiz. Presumivelmente, foi o 2nd vez após Xcode automaticamente havia criado
Mel

Respostas:

209

Nos documentos do git :

A execução do git init em um repositório existente é segura. Ele não substituirá as coisas que já estão lá. A principal razão para executar novamente o git init é escolher os modelos adicionados recentemente.

coreyward
fonte
110

Isso é descrito na git initdocumentação:

A execução do git init em um repositório existente é segura. Ele não substituirá as coisas que já estão lá. A principal razão para executar novamente o git init é escolher os modelos adicionados recentemente.

Greg Hewgill
fonte
47

Desde a v1.7.5 ( b57fb80a7 ), git initem um repositório existente também foi permitido mover o .gitdiretório:

A principal razão para executar novamente o 'git init' é pegar os modelos adicionados recentemente (ou mover o repositório para outro local se --separate-git-dir for fornecido).

'Selecionando modelos adicionados recentemente' significa que todos os modelos que ainda não foram copiados do diretório de modelos serão copiados para o diretório git existente.

'Mover o repositório para outro local' significa que, se --separate-git-dirapontar para outro lugar, o .gitdiretório existente será movido para lá e substituído por um link.

Joe
fonte
-1

significa que você já inicializou o git. porque você já carregou um arquivo no github a partir desse caminho. Se você verificar o caminho, uma pasta será criada com o nome de .git. É por isso que você não solicitou novamente o git inicializado. você pode ir para o próximo passo direto

git add.

Pasta Git

Khadim Rana
fonte