Executando verificação de segurança...
5

[GIT] Você realmente conhece o git init?

O comando git init é um dos comandos mais básicos e essenciais do git. É com ele que podemos transformar o nosso projeto atual em um novo repósitorio do Git, permitindo assim o versionamento do projeto.

Mas você sabe realmente como ele funciona e suas possibilidades de uso? Nesse post vou trazer algumas formas de se inicializar um repositório git, e suas diferenças.

Dentro do diretório raiz do nosso projeto, podemos rodar o seguinte:

git init

Isso vai dizer ao git que queremos inicializar um novo repositório naquele diretório. E para isso, um subdiretório .git será adicionado a esse diretório. Esse novo subdiretório contém todos os metadados que o git precisa para poder funcionar como o esperado.

Além da forma padrão, podemos dizer ao git qual diretório queremos que seja inicializado:

git init <diretório>

Dessa forma, um novo repositório Git será criado. Além disso, um subdiretório .git também vai ser criado no diretório que for indicado no parâmetro.

Vale lembrar que os diretórios não precisam estar vázios para que o comando funcione, e caso o seu projeto já tenha sido incializado em algum momento, executar o git init não irá sobrescrever seu histórico do git.

git init —bare

O único caso que um repositório Git se inicia vazio, é quando usamos o parâmetro —bare:

git init --bare <diretório>

Esse parâmetro permite criar, por exemplo, um repositório central de onde os devs podem criar seus repositórios de desenvolvimento. O repositório criado com o uso do —bare não possui um diretório ativo, o que significa que não é possível fazer commits diretamente nele. Ou seja, as alterações só chegam nesse novo repositório através do git push (git pull também pode ser usado para pegar as alterações recentes do projeto).

Pode ser um pouco confuso de entender, mas pense nesse repositório como sendo sua branch main, só que ela é restrita e só permite que você execute push ou pull usando branchs de desenvolvimento, nunca realizando alterações diretamente nela.

git init —template

O git também nos permite criar novos repositórios a partir de templates com o seguinte comando:

git init <diretório> --template=<diretório_template>

Isso significa que podemos criar diversos diretórios de template, sendo que cada diretório pode ter configurações e estruturas especifícas. Ao executar o comando, será criado um novo repositório com um subdiretório .git usando as configurações, arquivos e estruturas que existirem no diretório de template.

Podemos, por exemplo, criar um template com alguns Git Hooks e depois disso criar novos repositórios a partir desse template, e cada novo repositório já virá com esses hooks configurados.

Referências:

Carregando publicação patrocinada...
5

Outra opção interessante deste comando é mudar o nome do branch inicial.

Por padrão, git init cria o branch "master"1. Mas é possível alterar o nome do branch inicial usando a opção --initial-branch ou -b. Por exemplo, se eu quiser que seja "main":

# Ambas as opções são válidas
git init --initial-branch=main
git init -b main

Ou ainda, se quiser que sempre seja "main" por default, adicione nas configurações:

git config --global init.defaultBranch main

Assim, basta rodar git init que ele usará o nome que estiver configurado (no exemplo acima, é "main").

E não deixe de consultar a documentação para mais informações.

Footnotes

  1. A mudança de nome de "master" para "main" ocorreu no GitHub, para repositórios criados lá. Mas na linha de comando o branch inicial ainda é "master".