Git – guia prático – Parte 2
ramificando
- Branches (“ramos”) são utilizados para desenvolver funcionalidades isoladas umas das outras. O branch master é o branch “padrão” quando você cria um repositório. Use outros branches para desenvolver e mescle-os (merge) ao branch master após a conclusão.
- Crie um novo branch chamado “funcionalidade_x” e selecione-o usando:
git checkout -b funcionalidade_x
- Retorne para o master usando:
git checkout master
- E remova o branch da seguinte forma:
git branch -d funcionalidade_x
- Um branch não está disponível a outros a menos que você envie o branch para seu repositório remoto:
git push origin <funcionalidade_x>
atualizar & mesclar
- Para atualizar seu repositório local com a mais nova versão, execute:
git pull
- Na sua pasta de trabalho para obter e fazer merge (mesclar) alterações remotas.
- Para fazer merge de um outro branch ao seu branch ativo (ex. master), use:
git merge <branch>
Em ambos os casos o git tenta fazer o merge das alterações automaticamente. Infelizmente, isto nem sempre é possível e resulta em conflitos. Você é responsável por fazer o merge estes conflitos manualmente editando os arquivos exibidos pelo git. Depois de alterar, você precisa marcá-los como merged com:
git add <arquivo>
- Antes de fazer o merge das alterações, você pode também pré-visualizá-as usando:
git diff <branch origem> <branch destino>
rotulando
- É recomendado criar rótulos para releases de software. Este é um conhecido conceito, que também existe no SVN. Você pode criar um novo rótulo chamado 1.0.0 executando o comando:
git tag 1.0.0 1b2e1d63ff
- O 1b2e1d63ff representa os 10 primeiros caracteres do id de commit que você quer referenciar com seu rótulo. Você pode obter o id de commit com:
git log
- Você pode também usar menos caracteres do id de commit, ele somente precisa ser único.
sobrescrever alterações locais
- No caso de você ter feito algo errado (que seguramente nunca acontece 😉 ) você pode sobrescrever as alterações locais usando o commando:
git checkout -- <arquivo>
- Isto substitui as alterações na sua árvore de trabalho com o conteúdo mais recente no HEAD. Alterações já adicionadas ao index, bem como novos arquivos serão mantidos.
- Se ao invés disso você deseja remover todas as alterações e commits locais, recupere o histórico mais recente do servidor e aponte para seu branch master local desta forma:
git fetch origin
git reset --hard origin/master
dicas úteis
- Interface gráfica padrão:
gitk
- Usar saídas do git coloridas:
git config color.ui true
- Exibir log em apenas uma linha por commit:
git config format.pretty oneline
- Fazer inclusões interativas:
git add -i