Git

Git

Esse é um guia de utilização do Git, que é uma ferramenta de controle de versionamento que utilizamos nos repositórios do GitHub. É para ser algo simples e cobrir os casos de uso mais comuns.

Se você quiser a documentação completa do Git, com todas as features e funcionamento explicados, então dirija-se para o book oficial: PT-BRarrow-up-right / ENarrow-up-right

Cheatsheet GitHubarrow-up-right

Instalação

Aqui tem alguns guias de instalação dependendo da plataforma. Não é um bicho de 7 cabeças, mas já coloquei aqui porque tem alguns links importantes.

Caso queira ver na documentação original: PT-BRarrow-up-right ENarrow-up-right

🪟 Windows

Se você utiliza algum package-manager, como Chocolateyarrow-up-right ou Scooparrow-up-right, instale por eles. Caso o contrário, faça a instalação manual seguindo o tutorial.

🐧 Linux

❗ Muito provavelmente você já tem o git instalado, faça o teste e veja também se ele está atualizado. Caso não esteja instalado, baixe pelo package manager do seu sistema, irei listar alguns.

Debian-based (Ubuntu, Debian, Mint, Kali)

RPM-based (Fedora, CentOS, RedHat OS, etc)

Arch-based

Outras fontes estão aqui: https://git-scm.com/downloads/linuxarrow-up-right

🍎 MacOS

Rode o comando git --version no terminal. Se não tiver instalado irá aparecer um prompt para instala-lo.

Identidade

Agora temos que configurar sua identidade, que ficará ligada a todos os commits que fizer. Vamos configurar o nome e email globalmente para não precisar ficar colocando em cada repositório ou sessão:

🕵️ Privacidade

Caso não queira expor o seu endereço de email pessoal, que ficará em cada commit, você pode utilizar o email de no-reply linkado a sua conta do GitHub. Para isso vá em Settings > Emails e ative a opção Keep my email addresses private, lá terá o seu email privado "id+username@users.noreply.github.comenvelope"

Autenticação

Agora vamos configurar a parte de autenticação. Iremos utilizar ssh e faremos a configuração no GitHubarrow-up-right. A chave ssh também pode ser usada para assinar commits.

Gerar chave SSH

Documentação GitHubarrow-up-right

Primeiro vamos gerar nossa chave ssh. Você pode verificar se já tem uma gerada no diretório .ssh na home do seu usuário:

⚠️ O diretório .ssh é um diretório oculto por padrão (devido a iniciar com .), então caso queira acessar usando um file manager (Windows Explorer, Nemo, Thunar, Dolphin, etc), você precisa ativar a visualização de arquivos/diretórios ocultos.

Para gerar uma nova chave ssh, abra um terminal e utilize o comando:

❗ Esse pode ser o seu email pessoal da conta do GitHub

Ao aparecer essa pergunta, aperte enter. Se você quiser mudar o nome, lembre-se que terá que passar o caminho absoluto ou relativo ao diretório atual para a pasta .ssh do seu usuário.

Você também pode configurar uma senha, que é opcional e se não quiser usar é só apertar enter.

Ele irá gerar dois arquivos:

Adicionando chave SSH na conta do GitHub

Documentação GitHubarrow-up-right

Passo a Passo para chegar na página SSH keys do GitHub
Adicionar nova chave SSH no GitHub
  1. Para adicionar a chave SSH, primeiro copie a sua chave pública (id_ed25519.pub).

  2. Entre no GitHubarrow-up-right e logue com a sua conta

  3. Clique na sua foto de perfil e vá em Settings. (Ou vá em https://github.com/settings/ssh/newarrow-up-right e pule para o passo 6)

  4. Dentro da aba Access selecione SSH and GPG keys

  5. Clique em New SSH key

  6. Adicione o nome que desejar e cole o conteúdo da chave pública na parte de key

  7. Clique em Add SSH key

Testando autenticação SSH

Para testar a autenticação, abra um terminal e digite

Provavelmente aparecerá um aviso dessa maneira

Confirme se a fingerprint é a mesma do GitHub aquiarrow-up-right. Se for, digite yes e clique enter.

A seguinte mensagem deve aparecer

Clonar repositórios

Agora sempre que for clonar repositórios, opte pelo clone via SSH

GitHub clone link por SSH

Comandos Git

Essa seção é destinada para os comandos mais utilizado

git init [<directory>]

https://git-scm.com/docs/git-initarrow-up-right

Exemplo do git init

Comando utilizado para inicializar um repositório git no diretório atual ou no diretório especificado.

Flags Úteis
Descrição

-b <branch_name> --initial-branch=<branch-name>

Inicializa o repositório com a branch especificada. Caso contrário, utiliza o nome configurado em init.defaultBranch

git status

https://git-scm.com/docs/git-statusarrow-up-right

Exemplo do git status

Mostra os estados dos arquivos dentro do repositório local em relação ao HEAD e staging atual.

Flags Úteis
Descrição

-s --short

Saída em um formato mais resumido

-v --verbose

Saída mais verbosa, mostra mais status

git add [<pathspec>...]

https://git-scm.com/docs/git-addarrow-up-right

Exemplo do git add

Comando para adicionar mudanças ao index atual. O index se refere a área de "staging" temporária antes das mudanças serem aplicadas (commit). Você pode utilizar o comando git status para ver as alterações pendentes e em "staging".

Você pode utilizar globs (*) para adicionar múltiplos arquivos, como se fosse um autocomplete. Exemplo: git add *.c adiciona todos os arquivos com a extensão .c.

Flags Úteis
Descrição

-v --verbose

Saída mais verbosa, mostra mais status

-i --iteractive

Modo interativo. Veja sobre aquiarrow-up-right

git commit

https://git-scm.com/docs/git-commitarrow-up-right

Exemplo do git commit

Cria um novo commit contendo os arquivos em stage.

Flags Úteis
Descrição

-m --message=

Adiciona mensagem de commit

-v --verbose

Saída mais verbosa, mostra mais status

Exemplos

git remote

https://git-scm.com/docs/git-remotearrow-up-right

Exemplo do git remote

Utilizado para gerenciar os repositórios remotos, como o GitHub. Sem nenhum argumento faz a lista das URLs. Temos vários subcomandos

git remote add <name> <url>

Adiciona um repositório remoto

git remote rename <old> <new>

Renomeia um repositório remoto de nome <old> para <new>

git remote remove/rm <name>

Remove um repositório remoto com nome <name>

git remote get-url <name>

Retorna a URL de um repositório remoto

git remote set-url <name> <url>

Modifica a URL de um nome de repositório remoto

git branch

https://git-scm.com/docs/git-brancharrow-up-right

Exemplo do git branch

Comando relacionado com as branches do repositório. Quando usado sem nenhum argumento, mostra as branches locais e marca a branch atual.

Flags Úteis
Descrição

-v --verbose

Saída mais verbosa, mostra mais status

-d <branch> --delete <branch>

Deleta localmente a branch especificada

-D

É um atalho para --delete --force. Utilizando para quando só o -d não funciona.

-m --move

Utilizado para renomear uma branch

-r --remotes

Lista as branches do repositório remoto

-a --all

Lista as branches locais e do repositório remoto

git checkout

https://git-scm.com/docs/git-checkoutarrow-up-right

Exemplo do git checkout

Atualiza os arquivos de acordo com o index (commit) ou árvore (branch). "Troca de branches"

Flags Úteis
Descrição

-f --force

Força a troca, mesmo se houverem arquivos modificados

-b

Cria uma nova branch

-B

Cria uma nova branch. Se ela já existir, será sobrescrita

Exemplos

git pull

https://git-scm.com/docs/git-pullarrow-up-right

Exemplo do git pull

Incorpora mudanças de um repositório remoto na branch atual.

Flags Úteis
Descrição

-v --verbose

Saída mais verbosa, mostra mais status

-f --force

Força a atualização, mesmo se houverem arquivos modificados

--set-upstream

Adiciona uma branch padrão para futuros pulls em uma branch remota

git push <remote> <branch>

https://git-scm.com/docs/git-pusharrow-up-right

Exemplo do git push

Atualiza o repositório remoto com as mudanças locais.

Flags Úteis
Descrição

-v --verbose

Saída mais verbosa, mostra mais status

-f --force

Força a atualização, mesmo se houverem arquivos modificados

--set-upstream

Adiciona uma branch padrão para futuros pushs em uma branch remota

Exemplos

Recursos

Atualizado