Curso básico de git

O que é o git?

Sistema de controle de versão de arquivos

Por que usá-lo?

  • Integração contínua
  • Várias pessoas em um projeto
    • Fácil de mesclar alterações
  • Controle do workflow
  • Concentre/compartilhe seus projetos

Como o git funciona

  • Seu projeto está contido em um diretório
  • Diretório .git
  • Snapshots
  • Acesso remoto a servidores

Começando um projeto

  • Local
  • Site (gitlab, github, etc)

Começando um projeto

  • Local
    • mkdir meuProjeto
    • git init meuProjeto
  • .gitignore

Começando um projeto

  • Repositório
    • Use a interface
    • git clone

Obs: É possível criar um projeto local e depois adicioná-lo ao repositório

Commits

  • Cria um snapshot do projeto
    • Armazena somente as alterações
  • Alteração é feita apenas localmente
  • Tags (Hashes)

Commits

  • git add <arquivo alterado>
    • git add -A
  • git commit -m "Alterei algo"
  • git push
    • git push origin master

Commits

  • git pull
  • git fetch
  • git log --oneline
  • git checkout <hashe commit>

Commits

Branchs

  • Paralelismo de desenvolvimento
  • Partem de algum commit da "história" do master

Branchs

Branchs

  • git branch <nome da nova branch>
  • git checkout <nome da branch>
  • git branch
    • Diz qual em qual branch você está
  • Se há alterações, não é permitido trocar de branch

Como juntar branchs?

  • git merge
  • git rebase
    • Um pouco avançado, porém útil

Merge

Merge

Text

  • git checkout master
  • git merge outraBranch

 

Isso colocará o merge na master

Merge - Conflitos

Ne

  • Nem tudo é perfeito
  • Alterações no mesmo arquivo podem gerar conflitos
  • Merge busca o ancenstral comum

Nessas horas, rebase parece ser interessante além de outros truques "ninjas"

Merge requests

Outros comandos

Text

  • git stash
  • git config --local
  • git config --global
    • user.name
    • user.email
    • core.editor

Outros comandos

Text

  • git status
  • git diff

Boas práticas

  • Evite git add -A
  • Evite alterações de mesmos arquivos em branchs separadas
  • Dê commits concisos
    • Trabalhe em uma coisa de cada vez
  • Evite dar push para cada commit

Boas práticas

  • Evite abandonar branchs
    • Tenha o costume de dar merge e resolver conflitos
  • O que está na master deve funcionar
  • Branchs dentro das Branchs

Boas práticas

  • Dê merge com frequência
  • Use merge request
  • Primeiro dê merge do master em você antes de dar nele
  • README.md
  • Uma branch para cada issue

Controle de projeto

Issues

  • Problemas / Bugs / TODO's
  • Labels
  • Responsável
  • Data limite e tempo gasto
  • Visualizar alterações
  • Data de abertura e fechamento das issues

Millestones

  • Conjunto de issues

Integração com outras aplicações

Curso básico de git

By Bruno Henrique Meyer