git init inicializando seu compartilhamento
- #Git
#GIT
command git init
Git inicialaziando seu versionamento de codigo
(Comando avaliado usando última versão do git a 2.44.0)
o comando git-init - em si cria um repositório Git vazio ou reinicializa um já existente,
para invoca-lo basta abrir um terminal e na pasta do projeto digitar:
git init [-q | --quiet] [--bare] [--template=<diretório-modelo>]
[--separate-git-dir <dir git>] [--object-format=<formato>]
[-b <nome-do-ramo> | --initial-branch=<nome-do-ramo>]
[--shared[=<permissões>]] [diretório]
Abaixo descrevo cada uma das opções utilizadas:
Lembrando que este comando em si cria o arquivo .git vazio,
e também inicializa o branch main do repositorio do git
OBS: Caso a variável de ambiente $GIT_DIR esteja configurada, ela especificará um caminho a ser utilizado para a base dos repositórios em vez de ./.git.
Ou seja nã será setada no diretorio atual onde o usuário deu o comando.
Caso o diretório de armazenamento de objetos seja especificado através da variável de ambiente
$GIT_OBJECT_DIRECTORY, então os diretórios "sha1" serão criados abaixo, caso contrário, será utilizado o diretório predefinido $GIT_DIR/objects.
Até porque é seguro executar o comando git init em um repositório existente.
O comando não substituirá as coisas que já estiverem lá.
O principal motivo para executar novamente o comando git init é pegar os modelos adicionados recentemente
(ou mover o repositório para um outro local caso --separate-git-dir seja utilizado). sendo somente nescessario anexar os arquivos depois com outro comando.
OPÇÕES
-q ou --quiet
Exiba apenas mensagens de erro e aviso; ignorando todas as outras mensagens.
--bare
Crie um repositório simples. Caso a variável de ambiente GIT_DIR não esteja definido, defina diretório de trabalho atual.
--object-format=<formato>
Defina o formato do objeto informado (algoritmo hash) para o repositório.
Os valores válidos são sha1 e (se ativado) sha256. O valor predefinido é sha1.
--template=<diretório-modelo>
Especifique o diretório de onde os modelos serão utilizados.
(Consulte a seção "DIRETÓRIO MODELO" abaixo.)
--separate-git-dir=<dir git>
Em vez de inicializar o repositório como um diretório para $GIT_DIR ou ./.git/,
crie um arquivo de texto contendo o caminho para o repositório real.
Este arquivo atua como um link simbólico independente para o repositório do sistema de arquivos Git.
Caso seja reinicializado, o repositório será movido para um caminho determinado.
-b <nome-do-ramo> ou --initial-branch=<nome-do-ramo>
Use o nome definido para o ramo inicial no repositório que foi recém-criado.
Caso não seja especificado, retorne ao nome predefinido: main.
P.S. lembre-se que o nome master caiu em desuso e na versão atual usamos o nome main para designar
o branch principal.
exemplo de fork: git --initial-branch=patch-1
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]
Determina que o repositório Git deve ser compartilhado entre vários usuários.
Isso permite que os usuários pertencentes ao mesmo grupo enviem para esse repositório.
Quando definido, a variável de configuração core.sharedRepository é utilizada para que os arquivo e os diretórios definidos pela variável $GIT_DIR sejam criados com as permissões solicitadas.
Quando não definido, o Git usará as permissões informadas pelo umask(2).
A opção pode ter os seguintes valores, predefinido como group caso nenhum valor seja informado:
umask (ou false)
Utilize as permissões informadas por umask(2). É a predefinição quando --shared é omitido
group (ou true)
Torne o grupo do repositório com permissão de escrita (g+sx por exemplo,
pois o grupo git pode não ser o grupo principal de todos os usuários).
Isso é utilizado para afrouxar as permissões de um valor, a não ser que indique o contrário,
umask(2) seguro. Observe que o umask ainda se aplica aos outros bits de permissão
(por exemplo, caso o umask seja 0022 o uso de group não removerá os privilégios de leitura dos outros usuários
(sem um grupo). Consulte 0xxx para saber como usar exatamente as permissões do repositório.
all (world ou everybody)
O mesmo que group, mas torna o repositório legível por todos os usuários.
0xxx
0xxx é um número octal(não confunda com hexadecimal) e cada arquivo terá o modo 0xxx.
0xxx substituirá o valor umask(2) dos usuários (e não apenas diminuirá as permissões como group e all). 0640 criará um repositório de apenas leitura por grupo, sem permissão escrita ou acessível a outros.
0660 criará um repositório com permissão de leitura e escrita ao usuário e ao grupo atual, porém, inacessível aos outros.
É predefinido que a flag da configuração receive.denyNonFastForwards seja ativado nos repositórios compartilhados para que você não possa impor um impulsionamento fast-forwarding para ele.
Caso utilize um diretório, o comando será executado dentro dele. E caso o diretório não exista, um será criado.
DIRETÓRIO MODELO
Os arquivos e diretórios no diretório modelo cujo nome não começa com um ponto serão copiados para o $GIT_DIR após a sua criação.
O diretório modelo será um dos seguintes (em ordem):
o argumento utilizado com a opção --template;
o conteúdo da variável de ambiente $GIT_TEMPLATE_DIR;
a variável de configuração init.templateDir; ou
A predefinição do diretório modelo: /usr/share/git-core/templates.
A predefinição do diretório modelo inclui alguma estrutura de diretórios,
"padrões de exclusão" sugeridos (consulte gitignore[5]) e os arquivos gancho de amostragem.
Por predefinição os ganchos de amostragem estão todos desativados. Para ativar um dos ganchos de amostragem,
renomeie-o removendo o sufixo .sample.
Para um apanhado geral sobre execução hook consulte githooks[5].
EXEMPLOS
Inicie um novo repositório Git na base de um código já existente
no terminal digite:
$ cd /nomeusuario/pastaususuario/nomeprojeto
$ git init
git init -q --template=.github --separate-git-dir .gitback --object-format=<formato> -b branch --initial-branch=main --shared 0660 /nomeusuario/pastadoususuario/nomeprojeto/
Isso cria o arquivo .git no diretório:
/nomeusuario/pastadoususuario/nomeprojeto/.git
com as definições informadas.
GIT
Comandos parte do conjunto #GIT.
subcomando git init
Fonte: documentação oficial
Autor: nexus-br