Tutorial para integração de código no Git
Paola Accioly
Nessa disciplina adotaremos uma política para facilitar a integração do
código das equipes no repositório
central do RGMS no Github
Esse workflow servirá para integrar o código das tarefas da disciplina
ao repositório central.
Passo a passo dos colaboradores
1. Fazer um fork do repositório central do RGMS. Os membros de uma mesma equipe devem usar o mesmo fork para trabalhar
2. Cada membro equipe deve fazer um clone desse fork na sua máquina 3. Criar um topic branch no seu clone para implementar a tarefa.
4. Quando a tarefa estiver pronta e testada nos topic branchs dos
integrantes da equipe, fazer um merge destes branchs no branch master local
5. Fazer um push do clone com todas as tarefas da equipe integradas para o fork da equipe e fazer um pull request para o repositório central
(observando as normas para dar pull request)
6. Em alguns casos o pull request não será aceito devido a ocorrência de conflitos. Nesses casos, vamos pedir que a equipe faça um rebase
(procedimento explicado mais a frente) do head do repositório central
para o seu clone para que as modificações da sua equipe sejam aplicadas
à versão mais atual do repositório central. Nesse caso o procedimento é
detalhado no próximo slide.
Continuação – Passo a passo dos colaboradores
1. Antes do rebase lembrar de commitar alterações que ainda não foram commitadas
2. Fazer o rebase do repositório central para seu master local 3. Resolver os conflitos existentes com o auxílio da ferramenta
P4Merge (comentada mais a frente), fazendo os ajustes necessários que garantam que o código está compilando e funcionando
corretamente com a última versão do repositório
4. Dar commit nas mudanças, fazer um push do seu master local para
seu fork
Central Repo
Master Branch Version A
Forked repo 1
Cloned Repo 2
Topic Branch
3
Version B
4 5
Pull Request
Workflow
6
6.1 6.2
6.3 6.4
Pull Request
Local master
branch
Como fazer um rebase?
• No IntelliJ existe a opção de dar rebase, para isso é preciso configurar o repositório central como remoto e selecioná-lo no momento do
rebase
• Também é possível dar o rebase via linha de comando. Para isso, no shell do Github, dentro do seu repositório local coloque o comando:
git pull –-rebase https://github.com/spgroup/rgms.git master
• O Github tenta resolver o merge dos arquivos de forma automática.
No entanto, ele não consegue resolver alguns tipos de conflitos.
Nesses casos, o Github mostra quais arquivos tem conflitos e
precisam ser manualmente editados para terminar o rebase. Para resolver conflitos recomendamos a instalação e uso da ferramenta P4Merge, conforme o slide a seguir. Com a ferramenta instalada, quando o Github mostrar os arquivos que têm conflitos, coloque o comando:
git mergetool