Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git - Por partes

Avatar for Abilon Abilon
December 11, 2018

Git - Por partes

Apresentação geral sobre Git com temas fundamentais abordados.

- entendimento de estruturas chaves
- comandos, utilizações e particularidades
- ferramentas úteis do Git

Avatar for Abilon

Abilon

December 11, 2018
Tweet

Other Decks in Programming

Transcript

  1. FUNCIONAMENTO INTRO ▸ VCS / SCM ▸ Version Control System

    ▸ Source Code Management ▸ Não centralizado ▸ Sequência de snapshots referênciados por hashes SHA1
  2. FUNCIONAMENTO REPOSITÓRIO REMOTO/LOCAL ▸ git clone <endereço do repositório> REMOTO

    LOCAL Repositório "bare" git clone <repositório> Repositório local
  3. FUNCIONAMENTO INICIALIZAÇÃO LOCAL ▸ git init ▸ touch README.md ▸

    git add . ▸ git commit -m "Primeiro commit" ▸ git remote add origin <endereço do repositório> ▸ git push -u origin master
  4. FUNCIONAMENTO FLUXO COMUM INIT cria diretório .git ADD passa alterações

    para uma "área de seleção" COMMIT registra as alterações no repositório local PUSH envia do repositório local para o remoto
  5. FUNCIONAMENTO COMMIT ▸ registra o que tiver em staging para

    o repositório 5b05bbf2312a... hash SHA-1 do commit { - data/hora - mensagem - autor - arquivos alterados - alterações - hash: commit anterior - hash: arvore completa
  6. FUNCIONAMENTO COMMIT ▸ registra o que tiver em staging para

    o repositório 5b05bbf2312a... hash SHA-1 do commit { - data/hora - mensagem - autor - arquivos alterados - alterações - hash: commit anterior - hash: arvore completa
  7. 91EA6... commit size tree 5ea32 author Abilon commiter Abilon commit

    inicial 5EA32... tree size blob 98b2a README blob 5ac31 LICENSE 98B2A... blob size Conteúdo do arquivo 5AC31... blob size Conteúdo do arquivo
  8. COMANDOS GIT ADD ▸ selecionar mudanças para staging ▸ meios

    de seleção ▸ tudo - git add . ▸ arquivo(s) - git add file file2 file3 ▸ diretório - git add dir/
  9. COMANDOS GIT ADD ▸ meios de seleção ▸ por segmentos

    ▸ git add -p file (sem especificar arquivos, passará por todas as mudanças do working directory)
  10. COMANDOS GIT ADD ▸ meios de seleção ▸ por segmentos

    ▸ as IDEs/GUIs deixa isso mais fácil
  11. COMANDOS GIT RM ▸ semelhante ao git add ▸ exclusão

    de arquivos ▸ git rm file ▸ alias para rm file && git add file
  12. COMANDOS GIT DIFF ▸ comparação das mudanças no diretório de

    trabalho ▸ git diff ▸ visualizar mudanças do staging ▸ git diff --cached ▸ diferença entre branches ▸ git diff branch1..branch2
  13. COMANDOS GIT PUSH ▸ envia as mudanças do repositório local

    para o remoto especificado REPOSITÓRIO LOCAL DIRETÓRIO DE TRABALHO STAGING REPOSITÓRIO REMOTO
  14. COMANDOS GIT RESET ▸ Voltar mudanças do staging para o

    working directory ▸ git reset ▸ Remover todas as mudanças, working directory e staging ▸ git reset --hard !
  15. COMANDOS OUTROS COMANDOS - EXCLUSÃO ▸ Removendo mudanças do working

    directory ▸ git checkout -- . ▸ Remover arquivos não mapeados no repositório (untracked) ▸ git clean -fdx !
  16. BRANCHES INTERAÇÕES ▸ visualização e listagem ▸ git branch ▸

    git branch -a ▸ navegação ▸ git checkout <branch>
  17. BRANCHES INTERAÇÕES ▸ criação de novas branches ▸ git branch

    outra-branch ▸ criar uma nova branch a partir da atual e ja navega para a nova branch ▸ git checkout -b outra-branch
  18. BRANCHES GIT PULL ▸ traz as mudanças do repositório remoto

    e aplica ▸ git pull <remote> <branch>
  19. BRANCHES GIT FETCH ▸ traz mudanças do repositório remoto para

    o local ▸ git fetch <remote> master origin/master
  20. BRANCHES GIT MERGE ▸ git merge <branch> ▸ merge commit

    master develop Merge branch 'develop' into 'master'
  21. BRANCHES COMMIT APÓS MUDANÇAS NO REMOTE master origin/master Commit depois

    que mudanças foram recebidas no repositório remoto Novos commits no repositório remoto
  22. BRANCHES GIT REBASE ▸ semelhante ao merge, com uma capacidade

    de "reorganização" ▸ identificação de commit "pai" semelhante ▸ replay de commits
  23. EXTRAS CONFIGURAÇÕES ÚTEIS ▸ git config --global color.ui true ▸

    git config --global alias.<abreviacao> <comando> ▸ git config --global alias.ch checkout ▸ git ch ... ▸ git config --global rerere.enabled true
  24. EXTRAS GIT CHERRY PICK ▸ inclusão de commits de qualquer

    lugar para a branch atual ▸ git cherry-pick <hash do commit>
  25. EXTRAS GIT CHERRY PICK master feature/test commit 29fdb16bc61efe... Author: Abilon

    <[email protected]> Date: Thu Jun 22 16:36:11 2017 Altera atributos para model...
  26. EXTRAS GIT CHERRY PICK master ▸ estando na master ▸

    git cherry-pick 29fdb16bc61efe antigo commit 29fdb16bc6..., com novos hashes e aplicado na branch atual
  27. EXTRAS GIT CHERRY PICK ▸ flags úteis ▸ alterar mensagem

    de commit ▸ --edit ▸ aplicar mudanças mas não gerar o commit ▸ --no-commit ▸ aplicar commit com uma referência ▸ -x
  28. EXTRAS GIT REFLOG ▸ acontecimentos na HEAD do repositório local

    ▸ git reflog branch@{10} ▸ a partir de 10 commits atrás ▸ git reflog branch@{1.month.ago} ▸ a partir de 1 mês atrás
  29. EXTRAS GIT STASH ▸ salva estado atual do diretório de

    trabalho, de acordo com a posição do HEAD ▸ possível guardar alterações de arquivos não mapeados
  30. EXTRAS GIT STASH ▸ git stash ▸ git stash -u

    ▸ git stash --keep-index # mantem alterações em staging
  31. EXTRAS GIT STASH ▸ git stash list ▸ aplicar o

    ultimo stash ▸ git stash pop # ou apply ▸ pop x apply ▸ remover um stash ▸ git stash drop # ou com stash em específico stash@{n} stash@{0}: WIP on <branch>: <hash do ultimo commit> <mensagem do commit>
  32. EXTRAS GIT HELP ▸ man-pages para os comandos do git

    ▸ git help <comando> # add, commit