Skip to content

Instantly share code, notes, and snippets.

@GustavoGomesDias
Last active August 27, 2022 04:04
Show Gist options
  • Save GustavoGomesDias/2bd8a9c404ad1dfd903e363351a09b1e to your computer and use it in GitHub Desktop.
Save GustavoGomesDias/2bd8a9c404ad1dfd903e363351a09b1e to your computer and use it in GitHub Desktop.
git add
=>. ou arq_name => adiciona o arquivo para commit
=> -i abre a opção de interatividade
=> Ex.: Queremos tirar arquivos de dentro do commit
=> Opção 3 -> Digitar os números referentes ao arq q o git vai dar na hora
=> Enter para sair e confirmar os que vão estar fora da instância de commit
=> Caro querira recolocar um, opção 4
=> -p => Pergunta qual as modificações q você quer que sejam enviadas em certo arquivo.
=> Apresenta umas opções, ao dar enter ele fala cada uma delas
=> q = quit
=====================================================================================
git commit => Captura as mudanças adicionadas pelo comando git add. Por padrão, só esse comando abre um editor de texto para você escrever uma pequena mensagem que depois de escrever basta salar e fechar o editor
=> -m "mensagem" => Deixa você adicionar a mensagem direto na lina de comando, sem abrir o editor de texto
=> -a => Faz um commit de todas as intâncias de alterações acompanhadas (adicionadas pelo git add) no diretório.
=> -am "mensagem" => Junção de -a e -m
=> --amend => Modifica a mensagem de commit
=> Ex:. git commit -m "Adicionando arquivs" (erro de digitação)
=> git commit -m "Adicionando arquivos" --amend
=> Acertei a mensagem anterior que tinha erro de digitação
=> Adicionar outro arquivo (git add) e depois usar --amend (mudando ou não a mensagem) adiciona os arquivos no commit anterior
===================================================================================
git reset => O último commit é representado pela HEAD
=> git reset --soft HEAD~n => reset os n últimos commits, sendo n um número
=> git reset --hard => apaga tudo antes de mexermos,
=> git reset --nome_arq => tira o nome_arq da instância de commit, ou seja, faz ele voltar para antes do git add.
=> git reset -- => tira tudo da instância de commit
===================================================================================
git rebase -i HEAD~n => -i - i de interativo, ou seja, o git vai abrir meu editior e m eperguntar o que eu quero fazer com os n últimos commits.
=> Logo em cima vai ter os commits, caso eu coloque squash neles e deixe um com pick, o git vai juntar todos em um só.
=> Embaixo ele abre as opçõpes e explica elas.
=> Ao gravar e sair, ele abre o editor de novo com uma mensagem padrão logo em cima, basta apagá-la e colocar a mensagem que eu quero.
=> Se tivermos em uma branch diferente que a main e com uns 10 commits, por exemplo, podemos usar HEAD~1 para apagar todos os 10
====================================================================================
git config --global core.editor "code --wait" => para colocar o code como meu editor padrão para o git
https://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Setup-and-Config
====================================================================================
git diff => exibe o path completo
=> --staged => mostra o que vai no próximo commit
===================================================================================
git reflog => Mostra a situação dos shauns (não se é assim que se escreve), que é o número do commits que, por sua vez, encadeia ele na lista simples que linka todo o histórico de commit.
===================================================================================
git checkout
=> <nome_branch> => para ir pra branch
=> git checkout master => ir para a branch master
=> -b <branch> => cria uma nova branch
=> Imagine que demos um reset hard em algo que não poderiamos jogar no lixo, caso tenhamos o shaun, podemos usar:
git chekout -b <branch> <shaun do commit apagado> => cria uma nova branch com o commit apagado
ter o shaun é complicado, se for dar um reset em tudo, de um git log antes
====================================================================================
git gc => garbed collector ("esvaziar a lixeira")
====================================================================================
git branch
-d teste => apaga a branch
-m master main => renomeia a branch master local para main (ainda é preciso deletar ela no remote - repositório onliners);
====================================================================================
git fetch => Um "pull" para branchs, ou seja, ele puxa toas as branchs que não estão no seu repositório
===================================================================================
git status => Mostra o status do arquivo
=> -s => Mostra o status resumidamente
===================================================================================
git log => Mostra todos os commits (e suas hashs) já feitos
=> --oneline => Mostra resumidamente
=> --prety=format:'%<formatação>'
=> formatação => %cn -> Mostra o nome de quem fez os commits
%cr -> Mostra a data de quando os commits foram feitos
%d -> Mostra a branch e a tag (caso teja)
%s -> Messagem do commit
%H -> Mostra a hash do commit
%h -> Mostra a hash reduzida
%C -> Mudar a cor de cada print
===================================================================================
Comandos encurtados
ga = 'git add'
gaa = 'git add .'
gaaa = 'git add --all'
gb = 'git branch'
gbd = 'git branch --delete'
gc = 'git commit'
gcm = 'git commit --message'
gco = 'git checkout'
gcob = 'git checkout -b'
gi = 'git init'
gp = 'git pull'
gs = 'git status'
============================Configurando o git==================================
git config --global core.editor code => configura o editor padrão para o meu usuário (no meu caso, o vscode)
git config --global --edit => para editar as configurações do git
no .gitconfig, code --wait pede para o vscode esperar o git carregar todo o arquivo
=====Comandos que eu configurei
git s === git status
git c "<message>" === git add --all && git commit -m
git l === git log
==================================Comandos novos 04/07/2021
git push origin --delete <nome_branch> => Deleta uma branch na origin (tenha certeza de não ser a default)
==================================Comandos novos 28/07/2021
git remote
=> add <nome_remote> <url_do_repo>
=> -v => Lista os remotes existentes
=> set-url <nome_remote> <url_do_repo> => muda o o url do repo associado a <ome_remote> para <url_do_repo>
=> rename <nome_antigo> <novo_nome> => Renomeia o remote de <nome_antigo> para <novo_nome>
=> rm <nome_remote> => romeve o remote com nome <nome_remote>. ATENÇÃO: Esse comando não remove do servidor do github, apenas localmente
O <nome_remote> seria o "origin" do github ou o "heroku" que a gente usa no Heroku. Isso depende de você, mas deixa o "origin" para o github.
============================================================= Linkar o repositório
1 - git init
2 - git add [items]
3 - git commit -m "first commit"
4 - git branch -M main
5 - git remote add origin git@github.com:GustavoGomesDias/<REPO_NAME>.git
6 - git pull origin main --allow-unrelated-histories (# Se já tiver algo dentro)
7 - git push -u origin main
Fatal: Not possible to fast-forward, aborting
https://stackoverflow.com/questions/13106179/fatal-not-possible-to-fast-forward-aborting
=> git pull origin master --rebase
============================================================ Com a mudança do github, para projetos antigos talvez seja necessário mudar o remote
git remote set-url origin git@github.com:GustavoGomesDias/<REPO_NAME>.git
=========================================================== 20/09/2021
git stash => "Esconde" um arquivo que foi adicionado ao stage (ou seja, só pode ser usado depois do git add)
=> sem flag, ele esconde todos dentro do stage
=> push <path_arquivo> => para esconder apenas o path passado
=> pop => ele retorna o arquivo "escondido"
=> list => lista os arquivos "escondidos"
===========================================================05/10/2021
git tag => cria uma tag (para releases)
=> sem nada é uma tag light e não é recomenda suber para o github
=> -a => é uma tag anodata e é a que se recomenda subir para o github
=> -m (opcional) => como no git commit, é para passar uma mensagem
Na hora de dar git push
=> --tags => sobe todas as tags, mesmo as lights
=> --follow-tags => sobe só as anotadas
===========================================================07/10/2021
Selecionando o que deve ser clonado no repositório
git clone -n <link_repo>
git checkout HEAD <arquivo|diretório>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment