Git é um controle de versões e GitHub é o repositório na internet. Os comandos a seguir são executados em um terminal de comandos, dentro da pasta onde os arquivos serão monitorados.
Comando mais comuns
Iniciando o controle de versões em uma pasta
git init
- inicia um repositório na pasta atual;git config --global user.name "Fulano de Tal"
- Configurar o nome do usuário;git config --global user.email fulanodetal@exemplo.br
- Configurar o email do usuário;git config init.defaultBranch main
- inicia a ramificação principal.
Acesse o repositório do GitHub, clique em CODE (botão verde), e copie o link;
git remote add origin https://github.com/jocile/sistema-bancario.git
git branch -M main
git push -u origin main
Controlando as versões dos arquivos
git status
- mostra o estado atual do repositório local;git add .
- adiciona todos arquivos pra o controle de versões, o ponto marca todos;git commit -m "Comentário"
- confirma as alteraçõesgit push -m "comentário"
- envia para o GitHub.
Clonando um repositório existente
- Acesse o repositório do GitHub, clique em CODE (botão verde), e copie o link;
- Abra o terminal dentro da pasta que receberá os arquivos e digite:
git clone https://github.com/jocile/sistema-bancario.git
- substitua o link pelo link copiado;
Informações do repositório
git status
- estado dos arquivosgit status -s
- status mais curtogit log
- mostra um histórico dos commitsgit log --oneline
- simplifica em uma linhagit log --oneline --decorate
- mostra para onde os ponteiros do branch estão apontandogit log --graph
- desenha um gráficogit log --oneline --graph
- simplifica com um gráficogit log --oneline --decorate --graph --all
- exibindo com algo mais legível e com coresgit log -p meus-arquivos
- histórico de arquivosgit log --after="MMM DD YYYY"
- histórico a partir de uma datagit log --before="MMM DD YYYY"
- histórico antes de uma datagit log --autor=nome-autor
- histórico do autorgit diff
- mostrar diferençasgit mergetool
- usa a ferramenta gráfica para resolver conflitos
Adicionando
git add arquivo
- adicionar o arquivo ou diretório para o commitgit rm arquivo
- remove o arquivo do stage e do diretório de trabalhogit commit -m "Comentário"
- confirma as alteraçõesgit commit -v
- inclui as diferenças (diff) da sua alteraçãogit commit -am "comentário"
- adiciona e confirma comentando.
Desfazendo
git checkout arquivo
- remove as modificações no arquivo que ainda não foi adicionadogit checkout .
- remove as modificações ainda não foram adicionadasgit clean -df
- apaga novos arquivos que não foram adicionadosgit reset
- apaga novos arquivos que foram adicionadosgit revert HEAD
- desfaz o commitgit commit --amend
- renomear a mensagem do último commit
Remoto
git remote -v
- visualizar links dos repositórios remotosgit remote show origin
- Inspecionar um repositório remotogit remote add origin endereço-no-github
- Adicionar repositório remotogit remote add upstream endereço-no-github
- adicionar repositório remoto original de um forkgit clone endereço-no-github
- clonar o projeto do servidor remoto para localgit pull origin nome-do-branch
- puxar (trazer) o histórico do servidor remotogit fetch upstream nome-do-branch
- Baixar objetos e referências de outro repositório remotogit push origin nome-do-branch
- empurrar (enviar) o histórico do local para o servidor remotogit remote rm origin
- remove o link do repositório remotogit remote rename nome-atual novo-nome
- renomeia repositório remotogit remote set-url origin http://meu-novo-endereco/meu-projeto.git
- altera o link do remotogit push origin -d minha-branch
- apaga um branch remoto
Ramificações
git branch
- Identifica a versão em que o projeto se encontra.git branch -a
- lista os branchesgit checkout nome-do-branch
- trocar, alternar de branch (muda o projeto para o branch)git checkout master
- retornar a ultima versão do projetogit branch nome-do-branch
- criar um branchgit checkout -b nome-do-branch
- criar um branch e selecioná-lo em apenas um passo (atalhogit reset --hard nome-do-branch
-git branch -d nome-do-branch
- deletar um branchgit push origin nome-do-branch
- Para deletar um branch remoto enviar um push após deletar localgit merge nome-do-branch
- une o branch ao branch em que o projeto se encontragit branch -m novo-nome-da-branch
- renomeia o branch;
Tags
git tag
- listar as tags;git show v1.4
- detalhar tag;git tag v1.4-lw
- criar a tag tipo leve;git tag -a v1.4 -m "my version 1.4"
- criar a tag anotada;git tag -a v1.2 9fceb02
- criar uma tag para um branch específico;git push origin v1.5
- enviar a tag para o servidor;git push origin --tags
- enviar todas tags para o servidor;git checkout -b version2 v2.0.0
- criar um branch a partir de uma tag;
Configurações
Define as variáveis de configuração:
- global - uso global do usuário;
- system - configurações do sistema;
- local - referente à pasta local;
Principais comandos:
git init
- Para inicializar um repositório;git config --list
- Listando as configurações;git config --list --show-origin
- mostra o caminho da variável;git config --global user.name "Fulano de Tal"
- Configurar o nome;git config --global user.email fulanodetal@exemplo.br
- Configurar o email;git config --global core.editor code
- Configurar o editor, code para VsCode.git config --global init.defaultBranch main
- define ramificação padrão.
Credenciais de autenticação
- Acessar o GitHub em Settings, Developer Settigns e configurar uma credencial tipo token classic;
git config credential.helper cache
- salva a credencial temporariamente (computador compartilhado);git config --global credential.helper store
- salva a credencial permanentemente (único usuário no sistema) ;git config --global credential.helper
- visualizar variável de configuração global.