Git

Basis Tecnologia da Informação S.A. - 2019

Agenda

  • Fundamentos

  • Comandos básicos

  • Resolução de conflitos

  • Customização

Fundamentos

  • Não centralizado

  • Operações locais

  • Integridade

  • Só adiciona conteúdo

  • Estados: commited, modified, staged

Fundamentos

Sistemas de controle de versão centralizados

scv centralizado

Fundamentos

Sistemas de controle de versão centralizados

scv nao centralizado

Comandos básicos

  • Iniciando os trabalhos

    • local

    • remoto

Comandos básicos

  • Iniciando os trabalhos

    • local

$ git init

Comandos básicos

  • Iniciando os trabalhos

    • remoto

$ git clone [url]

Monitorando arquivos

FileStatusLifecycle

Monitorando arquivos

$ git status
$ git add
$ gitignore
$ gitdiff
$ git commit
$ git commit --amend

Regras de nomenclatura

Basis Foundation

Remotos

$ git remote
$ git fetch
$ git pull
$ git push

Remotos

Basis Foundation

Taggging

  • Baselines

$git tag

Branching

$git branch
$git checkout
$git merge

Fluxo de exemplo

  1. Já existe um código em produção

  2. Criar uma branch para nova funcionalidade

  3. Voltar a branch de produção para corrigir um erro

  4. Fazer o merge da correção na master

  5. Voltar para a branch da nova funcionalidade

  6. Fazer o merge da nova funcionalidade na master

Fluxo de exemplo

  1. Já existe um código em produção

commit1

Fluxo de exemplo

  1. Criar uma branch para nova funcionalidade

commit2

Fluxo de exemplo

2.1. Adicionar commits para a nova funcionalidade

commit3

Fluxo de exemplo

  1. Voltar a branch de produção para corrigir um erro

commit4

Fluxo de exemplo

  1. Fazer o merge da correção na master

commit5

Fluxo de exemplo

  1. Voltar para a branch da nova funcionalidade

commit6

Fluxo de exemplo

  1. Fazer o merge da nova funcionalidade na master

merge

Fluxo de exemplo

  1. Fazer o merge da nova funcionalidade na master

merge2