Aviso! Estamos em Beta. Caso encontre algum problema, envie um email para games@vidageek.net

Aprenda Git

Git é uma ferramenta de controle de versão que tem crescido muito nos últimos anos. Este jogo cobre os principais comandos e fluxos de trabalho com esta ferramenta.

Você pode começar os exercícios pelo primeiro ou escolher um grupo abaixo:

Conteúdo:

Criar um repositório

O primeiro passo para trabalhar com Git é criar um repositório.

Para isso, basta rodar o comando git init NOME_DO_REPOSITORIO.

Exemplo:

TopoComeçar!

Adicionar arquivos

Do ponto do vista do Git, existem quatro estados no qual um determinado arquivo pode estar.

Para mudar um arquivo de untracked ou modified para Commit candidate, você usa o comando git add CAMINHO.

O git add é inteligente, então se você passar um caminho parcial para ele, ele muda o estado de todos os arquivos que contiverem esse caminho parcial.

Exemplo:

TopoComeçar!

Fazer Commits

Agora que você já sabe como selecionar as modificações que quer incluir em um pacote de modificações (um commit), chegou a hora de aprender como gerar esse pacote.

O comando utilizado para criar um commit em git é git commit. Com esse comando, todos os arquivos que estiverem marcados como Commit candidate serão incluídos no commit.

Se você também quiser incluir os arquivos que estão marcados como modified, você pode incluir a flag -a.

Uma coisa muito importante de qualquer commit é uma mensagem que explique o que significa aquele commit. Para isso, você pode passar a opção -m "mensagem de commit". Caso você não passe, o git vai abrir um editor de texto para que você digite a mensagem.

Exemplo:

TopoComeçar!

Criar Branches

Nos últimos exercícios você deve ter notado que seus commits ficaram em um lugar chamado master.

Esse master é um branch que o git cria automagicamente quando você faz um commit sem estar em nenhum branch (como é o caso de um repositório recém criado).

Quando usamos Git, quase todas as operações são feitas dentro de um branch. Um branch nada mais é que uma lista de commits. Você pode criar, apagar e renomear branches.

Para criar você usa o comando git branch NOME_DO_BRANCH. Para apagar git branch -D NOME_DO_BRANCH. E para renomear você usa git branch -m NOME_ANTIGO NOME_NOVO.

Exemplo:

TopoComeçar!

Mudar de branch ativo

Agora que você já sabe criar novos branches, podemos começar a trabalhar nesses branches criados.

Para você mudar o branch ativo (branch onde são colocados os seus commits), você usa o comando git checkout

Exemplo:

Como é muito comum querer criar e mudar para o branch novo, você pode usar a flag -b para o git criar o branch automaticamente.

Exemplo:

TopoComeçar!

Merge de branches

Como sempre trabalhamos com branches, uma operação muito útil é juntar código de branches diferentes.

No Git, uma das formas de se fazer isso é o Merge e o comando para fazer o merge é git merge BRANCH_DE_ORIGEM.

O Merge vai olhar para as duas branches (a atual e a de origem), encontrar a base comum (quais os commits que ambas tem) e vai aplicar os commits que a branch atual não tem por cima dos commits que estão nela.

Caso existam commits na branch atual que não fazem parte da base, ele cria automaticamente um commit de merge.

Exemplo:

TopoComeçar!

Rebase de branches

Outra forma de mover commits de um branch para o outro é o Rebase.

O Rebase funciona de forma muito semelhante ao Merge. A diferença é a ordem em que os commits são aplicados.

No Merge, os commits do outro branch são aplicados por cima dos commits do branch atual.

No Rebase, os seus commits (acima da base) são temporariamente apagados, o branch atual fica exatamente igual ao outro branch e seus commits são aplicados um a um no branch atual.

Uma das vantagens disso é que dessa forma, você consegue manter um histórico organizado.

Para fazer o Rebase, você usa o comando git rebase BRANCH_DE_ORIGEM.

Exemplo:

TopoComeçar!

Enviar commits para branches remotos (Push)

Para facilitar com que outras pessoas utilizem e colaborem com o seu código, uma operação muito comum é enviar as suas modificações para um branch em um servidor remoto (em geral chamado de origin)

Esse servidor remote pode ser um simples repositório Git em uma máquina acessível a todos os membros do time.

Para enviar os commits do seu branch atual para o servidor remoto você usa o comando git push REPO_REMOTO BRANCH.

É muito importante que a base do seu branch atual seja o último commit que está no repositório remoto. Se isso não acontecer, seu Push será negado.

Exemplo:

TopoComeçar!

Pegar commits de branches remotos (Pull)

Para trazer commits de um repositório remoto você usa o comando git pull REPO_REMOTO BRANCH.

O Pull funciona de forma muito parecido com o Merge, mas ele serve para branches remotos.

Exemplo:

TopoComeçar!

Git Workflow

Uma das principais mudanças que acontecem quando você passa a usar Git é que o seu fluxo de trabalho muda.

Um fluxo de trabalho muito comum com Git funciona da seguinte forma:

São bem mais passos do que se você utilizar Svn, por exemplo, mas é um fluxo muito mais flexivel. E depois que você se acostuma, você faz o fluxo automaticamente.

TopoComeçar!