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

Um overview sobre GIT

Um overview sobre GIT

Slides do talk sobre GIT, apresentado para meus amigos da empresa Interativa Informatica

Diego Garcia

January 17, 2018
Tweet

More Decks by Diego Garcia

Other Decks in Technology

Transcript

  1. Diego Garcia Pessoal: • Pai • Punk Rocker • Cientista

    da computação frustrado Profissional: • Software Engineer na Magazine Luiza Contatos: • @drgarcia1986
  2. O GIT é: • Uma ferramenta de controle de versão.

    • Open Source. • Criado por Linus Torvalds. • Trabalha de forma distribuída. • Simples e fácil de apreender. • Extremamente popular. • Muito material bom disponível.
  3. Um snapshot do conteúdo inteiro do repositório com informações extras

    sobre autor do commit, committer e commit pai (se houver) Commit
  4. Estratégia de fusão que cria um novo commit com as

    diferenças entre as branches Merge
  5. Estratégia de fusão que reorganiza os commits aplicando os commits

    de uma branch após o commit de outra Rebase
  6. Adicionando uma nova feature • Atualiza a "master" local: $

    git checkout master $ git pull • Cria a branch nova: $ git checkout -b feature-x • Realiza as alterações na base de código • Coloque as alterações em stage $ git add main.c feature-x.c • Crie o commit $ git commit -m 'Add Feature X on main file' • Envie as alterações para o remoto: $ git push -u origin feature-x
  7. Será muito comum consultar a árvore/grafo de commits log Sugestão:

    git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
  8. diff Extremamente útil para ver o conteúdo em index ainda

    não "staged" Dica: use a opção --staged para ver o que irá entrar no próximo commit
  9. Permite aplicar o conjunto de alterações de um commit como

    um novo commit na branch atual cherry-pick
  10. Rebase *i*nterativo, permite fazer alterações sofisticadas em um conjunto de

    commits (e.g. squad, re-word, delete, etc) rebase -i
  11. Remove o commit anterior e cria um novo com o

    conteúdo do anterior mais as alterações "staged" atuais. ammend
  12. São mais fáceis para serem revisados, mais fáceis para serem

    localizados (capriche na mensagem) e mais fáceis de serem aproveitados Commits pequenos com apenas um objetivo
  13. Tente manter a árvore o mais limpa possível (mas às

    vezes é necessário) Evite branches de branches
  14. Lembre-se, mantenha a árvore limpa, um commit de "fix typo

    foo" sendo que esse typo foi feito na branch corrente, não faz sentido. Faça squash de commits não significativos
  15. A estratégia de merge pode bagunçar a árvore de commits

    e dificultar a leitura do histórico do projeto. Prefira sempre rebase ao invés de merge
  16. Mantenha sempre uma referência para consulta ou rebuild de seus

    releases com uma TAG. Sempre faça seus releases baseados em TAGs
  17. Pro GIT • Ebook Gratuito. • Disponível em PDF, Mobi,

    ePub e Web. • Tradução para o português disponível (somente WEB) • https://git-scm.com/book/en/v2