git config --global user.name "Seu Nome"
git config --global user.email "seuemail@example.com"mkdir meu-projeto
cd meu-projeto
git init
git statusgit add arquivo.txt
git add .
git commit -m "Mensagem do commit"git loggit branch nova-branch # Criar branch
git switch nova-branch # Trocar para a branch
git switch -c nova-branch #Alterna para uma nova branch e cria ela ao mesmo tempogit switch main # Ir para a branch principal
git merge nova-branch # Mesclar a nova branch na maingit remote add origin https://github.com/seuusuario/seurepositorio.git
git push -u origin main
#Origin é uma convenção para o nome do **repositório** remotogit push -u origin main
#-u garante que a branch principal seja rastreada com a branch remota
git push
#Nos proximos push a branch principal será rastreada com a branch remota
#Não é mais necessário -ugit pull <origin> <main> # Traz as alterações do repositório no gitHub
git fetch <origin> <main> # Trás a consciência das alteraçõesgit showgit flow init
git flow feature start minha-featurePrincipais: main, develop
main: Linha principaldevelop: LInha de desenvolvimento (branch dev)- Auxiliares:
feature,release,hotfix feature: Features separadas (Tudo que é novo)release: Em liberação para o usuáriohotfix:
git merge --no-ff branch-a
git mergetool # Ferramenta para resolver conflitosgit rebase main #O rebase pega os commits de uma branch e os reaplica em outra branch. Isso cria novos commits com novos hashes, mas com o mesmo conteúdo.
# Mudar para a branch de trabalho
git checkout feature-branch
# Reaplicar os commits da 'feature-branch' sobre a 'main'
git rebase main
git rebase -i main #Rebase interativo para editar commits:
echo "node_modules/" >> .gitignore ## >> ADICIONA NO ARQUIVO .GITIGNORE > SOBRESCREVE O ARQUIVO
git status --ignore
cat .gitignore # MOSTRA O CONTEÚDO DO ARQUIVO .GITIGNOREgit config --local #Defini configurações a nivel de um repositório local
git config --global #Defini configurações a nivel global
git config --system #Defini configurações a nivel do sistema
git config --list #Lista todas as configurações do gitgit config [--local | --global | --system] alias.<comando curto> <comando longo
#Exemplos:
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm commit
git config --global alias.st status
#Criação de atalho "hist" para exibir o histórico formatado
git config --global alias.hist 'log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short'git reset HEAD # Remove arquivos do commit mas mantém no staging (não desfaz o commit)
git reset --soft HEAD~1 # Remove o último commit, mas mantém os arquivos no staging
git reset --hard HEAD~2 # Remove o penúltimo commit e descarta todas as mudanças (irrevogável)
git revert HEAD # Reverte o último commit criando um commit de "desfazer"
git revert HEAD~2 # Reverte o penúltimo commit
git revert HEAD -m "Revertendo último commit" # Reverte o último commit com uma mensagem personalizada
git revert -m 1 <commit-hash> #reverter um merge commitO git checkout é um comando usado para alternar entre branches, restaurar arquivos específicos ou até mesmo criar novas branches. Ele foi parcialmente substituído pelo git switch, mas ainda é amplamente utilizado.
git checkout nome-da-branchIsso muda o HEAD para a branch especificada.
git checkout -b nova-branchIsso cria a branch nova-branch e já muda para ela.
git checkout -- nome-do-arquivoSe precisar reverter um checkout acidental, você pode usar:
git reflog
# Encontre o hash do commit antes do checkout
git reset --hard <commit-anterior>