anotações rápidas para começar projetos, conectar repositórios e corrigir commits sem precisar procurar tudo de novo.
ver configuração atual:
git config user.name
git config user.emailconfigurar globalmente:
git config --global user.name "seu-usuario"
git config --global user.email "seu-email"configurar somente no projeto atual:
git config user.name "seu-usuario"
git config user.email "seu-email"isso é útil quando você usa mais de uma conta do github.
dentro da pasta do projeto:
git init
git branch -M main
git add .
git commit -m "initial commit"depois conecte ao github:
git remote add origin https://github.com/usuario/repositorio.git
git push -u origin mainconfira se já existe algum remote:
git remote -vse não existir:
git remote add origin https://github.com/usuario/repositorio.gitdepois:
git branch -M main
git push -u origin mainver o remote atual:
git remote -vtrocar a url:
git remote set-url origin https://github.com/usuario/novo-repositorio.gitgit clone https://github.com/usuario/repositorio.git
cd repositoriover alterações:
git statusadicionar tudo:
git add .criar commit:
git commit -m "descrição da alteração"enviar:
git pushbaixar atualizações:
git pulllista resumida:
git log --onelinecom gráfico:
git log --oneline --graph --decorate --allver o último commit:
git show HEADgit reset --soft HEAD~1remove o commit, mas mantém os arquivos no staging.
git reset HEAD~1remove o commit e tira os arquivos do staging.
git reset --hard HEAD~1cuidado: esse comando apaga as alterações locais daquele commit.
adicione os arquivos corrigidos:
git add .atualize o último commit sem mudar a mensagem:
git commit --amend --no-editou altere a mensagem:
git commit --amend -m "nova mensagem"forma mais segura:
git revert HASH_DO_COMMIT
git pushisso cria um novo commit que desfaz o anterior sem reescrever o histórico.
voltar um commit:
git reset --soft HEAD~1voltar dois:
git reset --soft HEAD~2também é possível usar o hash:
git reset --soft HASH_DO_COMMITquando você usou reset, rebase ou amend em commits que já estavam no github:
git push --force-with-leaseprefira --force-with-lease em vez de --force.
cuidado: reescrever histórico pode apagar commits de outras pessoas.
útil quando você duplicou um projeto e quer publicar uma cópia limpa.
primeiro confirme que .env, tokens e arquivos privados estão no .gitignore.
depois:
Remove-Item -Recurse -Force .git
git init
git branch -M main
git add .
git commit -m "initial commit"
git remote add origin https://github.com/usuario/repositorio.git
git push -u origin mainisso mantém os arquivos e remove apenas o histórico git local.
ver login:
gh auth statusfazer login:
gh auth logincriar repositório público:
gh repo create nome-do-repositorio --public --source=. --remote=origin --pushprivado:
gh repo create nome-do-repositorio --private --source=. --remote=origin --pushver branches:
git branchcriar e entrar em uma branch:
git switch -c nome-da-branchtrocar de branch:
git switch mainapagar branch local:
git branch -d nome-da-branchenviar nova branch:
git push -u origin nome-da-branchdescartar mudanças de um arquivo:
git restore caminho/do/arquivodescartar todas as alterações rastreadas:
git restore .tirar arquivo do staging:
git restore --staged caminho/do/arquivoexemplo de .gitignore:
.env
.env.*
!.env.example
.venv/
venv/
__pycache__/
node_modules/
dist/
.angular/
.vscode/
.idea/
*.log
*.pem
*.key
.private/confira se um arquivo está sendo ignorado:
git check-ignore caminho/do/arquivover somente arquivos versionados:
git ls-filesnunca versione api keys, tokens, senhas, client secrets ou arquivos .env reais.
se um segredo já foi commitado, apagar o arquivo depois não remove o segredo do histórico. revogue a credencial e substitua por uma nova.
erro:
the current branch main has no upstream branch
corrigir:
git push -u origin mainver:
git remote -vtrocar:
git remote set-url origin https://github.com/usuario/repositorio.gitou remover e criar novamente:
git remote remove origin
git remote add origin https://github.com/usuario/repositorio.gitprimeiro tente:
git pull --rebase origin main
git pushnão use --force sem entender por que o push foi rejeitado.
não libere o secret pelo botão de bypass se ele for uma chave real.
remova a chave do arquivo e também dos commits que estão sendo enviados.
se for um projeto novo e o remoto ainda estiver vazio, normalmente é mais simples recriar o histórico:
Remove-Item -Recurse -Force .git
git init
git branch -M main
git add .
git commit -m "initial commit"
git remote add origin https://github.com/usuario/repositorio.git
git push -u origin maingit status
git add .
git commit -m "mensagem"
git push
git pull
git log --oneline --graph
git remote -v
git branch
git reset --soft HEAD~1
git commit --amend --no-edit
git check-ignore arquivo
git ls-filesantes de usar:
git reset --hard
git push --force
Remove-Item -Recurse -Force .gitconfira duas vezes o que você está fazendo.
esses comandos podem apagar alterações ou reescrever o histórico.