diff --git a/cap05.Rmd b/cap05.Rmd
index 69bec534b64b49ef6f214da76f1bb9c84d1c3949..69c84d95c53a8132eb28bc5ce6e406e3621a0328 100644
--- a/cap05.Rmd
+++ b/cap05.Rmd
@@ -493,29 +493,203 @@ clone, add, commit, branch, push, fetch, pull.
 
 ## Macanísmos de colaboração ##
 
-### Fork ###
+Os serviços web para Git, mesmo que você trabalhe sozinho, já são
+interessantes para que você tenha uma cópia (backup) do seu projeto e
+disponibilize seu trabalho. No entanto, um dos principais objetivos dos
+serviços web é permitir a colaboração entre pessoas. Já mencionamos o
+básico sobre isso quando falamos dos recursos de *issue*, *fork* e
+*merge request*. Nas sessões a seguir, vamos nos aprofundar nesses três
+mecanísmos chaves para a colaboração via serviços web para Git.
 
-<https://help.github.com/articles/fork-a-repo/>
-<https://confluence.atlassian.com/bitbucket/forking-a-repository-221449527.html>
+### Issues ###
 
-É uma cópia livre e independente que você pode usar para
-acrescentar/corrigir o projeto origem ou usar como ponto de partida para
-outro projeto.
+De acordo com o dicionário [Macmillan], *issue* significa um problema
+que precisa ser considerado. Também significa um assunto que as pessoas
+debatem ou o volume de uma revista. Cabe aqui a primeira definição.
+
+Nos serviços web para Git, *issue* é um recurso da interface que permite
+que as pessoas abram um assunto/tópico referente ao projeto. Em geral,
+com os *issues* as pessoas externas ao projeto indicam um *bug* - uma
+falha a ser corrigida - ou sugerem que o projeto incorpore determinada
+característica desejável. O dono do projeto avalia a proposta e pode
+discutí-la logo em seguida, mantendo as mensagens reunidas e disponíveis
+para outros usuários que acompanham o projeto. Quando a proposta do
+*issue* for implementada, o *issue* pode ser fechado embora continua
+disponível e possa ser referenciado no, tanto para usuários que
+reportarem o problema já solucionado (usuários que não estão usando a
+versão mais recente) quanto para incluir no *change log* do projeto
+(essa versão corrige o bug descrito no *issue#43*, por exemplo).
+
+Quando um projeto é coletivo, como são a maioria dos projetos no PET
+Estatística (<https://gitlab.c3sl.ufpr.br/groups/pet-estatistica>), o
+recurso de *issue* pode ser usado de outra forma: como gerenciador de
+tarefas. Combinado com as *milestones*, cada membro cria um *issue*
+correspondente ao que vai fazer no projeto no período de uma semana. Com
+isso, todos os demais membros são notificados de que alguém já vai
+trabalhar na tarefa A do projeto, eliminando foco duplicado. O *issue* é
+parte do fluxo de trabalho do PET Estatística que será descrito em outro
+capítulo.
+
+As *milestones* são uma espécie de coleção de *issues* que tenham algo
+em comum. Considere por exemplo o projeto de um livro. As *milestones*
+podem ser os capítulos a serem escritos e os *issues* podem ser as
+seções. Se for um projeto de software, as *milestones* podem separar os
+*issues* referentes ao aperfeiçoamento da documentação do software e ao
+desenvolvimento do mesmo (escrita de código fonte).
+
+Criar um issue é muito simples. Tanto no GitHub quanto no GitLab, existe
+um fácil acesso as *issues* do projeto. Na página dos *issues* você pode
+criar um novo *issue*, comentar em um já existente e até reabrir um
+*issue* que já foi fechado (comum quando acredita-se ter resolvido um
+*bug* mas que ainda não foi). Os *issues* são numerados sequencialmente
+e isso faz com que cada *issue* seja único dentro do projeto. Os
+serviços web até tem formas de fazer *hiperlinks* facilmente para os
+*issues*. No GitLab, usa-se um hash seguido do número identificador
+(e.g. `#45`) para indicar um *issue*.
 
-Você não precisa ser colaborador do projeto para dar *fork*, basta estar
-na mesma plataforma. Você pode submeter a sua colaboração para o dono
-por meio de *Merge Request*.
+### Fork ###
 
-Mostrar um pull request que acrescenta pgf e pgs como renderização Tex.
-https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
+A palavra *fork*, como substantivo, representa forquilha,
+bifurcação. Como verbo, representa bifurcar. Esse recurso está presente
+nas interfaces web para permitir que usuários facam cópias livres de
+projetos de outras pessoas. Como essa cópia é do projeto em determinado
+instante, há grande chance de divergência entre cópia e original a
+partir desse instante, por isso é apropriado a palavra bifurcamento.
+
+As finalidades de um *fork* são duas: 1) ter uma cópia na qual se possa
+acrescentar modificações e enviar para o dono e assim contribuir no
+projeto original ou 2) usar a cópia como ponto de partida para outro
+projeto, sem intenção de voltar ao projeto original.
+
+Com o *fork*, você pode colaborar como um terceiro em um projeto, ou
+seja, sem ser colaborador adicionado pelo dono ao projeto. Nessa cópia
+você tem permissões de *owner* pois na realidade, embora seja uma cópia,
+ela é toda sua. Você faz sua cópia livre, trabalha como quiser e no
+prazo que quiser, e submete ao projeto original o desenvido na sua
+cópia. O dono do projeto não tem como saber por que você fez o *fork*
+(mas você pode criar um *issue*) nem quando irá concluir o que
+almeja. No entanto, quando concluir, para que seu trabalho seja
+incorporado ao original, você terá que fazer um *merge request* (isso só
+é possível entre usuários de um mesmo serviço web).
+
+No GitHub, o acesso ao *fork* é por um botão que fica mais a direita na
+linha de título do projeto. No GitLab, o botão de *fork* fica na página
+inicial do projeto logo acima do endereço para clonar. Em qualquer um
+desses serviços, uma vez logado, ao pedir um *fork*, uma cópia do
+projeto é criada no seu perfil.
+
+Uma vez com a cópia, você pode fazer um clone e começar a desenvolver os
+projetos. Se a sua intenção é submeter modificações ao original, seja
+ainda mais cuidadoso com as mensagens de *issue*. Escreva sempre no
+idioma original do projeto. Muitas vezes, antecipando esse tipo de
+colaboração, os usuários disponibilizam guias de contribuição
+(*contribution guide*) com instruções de como proceder.
+
+Os *branchs* que criar serão na sua cópia os *pushs* que fizer irão para
+o seu perfil. Quando o seu trabalho tiver concluído, você pode fazer um
+*merge request* que descreveremos a seguir. Se a sua intenção foi usar o
+*fork* como semente para um projeto independente, não se esqueça de dar
+os devidos créditos ao dono da cópia, mesmo que lá no futuro, o seu
+projeto e o original sejam completamente diferentes.
 
-### Issues ###
+### Merge Request ###
 
-Correções e aperfeiçoamento.
+O *merge request* (requisição de mescla/fusão) é o recurso de
+colaboração chave. Ele serve para que pessoas da equipe (segundos) peçam
+para incorporar *branches* ao ramo principal (em geral o *master* ou o
+*devel*) e terceiros peçam para incorporar o desenvolvimento do
+*fork*. O GitHub usa o termo *pull request* ao invés de *merge request*
+embora não exista diferença alguma.
+
+Os trabalhos coletivos em projetos Git, para serem bem sucedidos,
+consideram algum esquema de trabalho. A maioria dos esquemas considera o
+desenvolvimento por *branches*. Nada mais justo, já que uma é uma
+característica do Git. Existem ramos permanentes, como o
+*master*, que recebem os desenvolvimento feito em *branches* auxiliares
+ou de demanda. Esses ramos de demanda, como o nome sugere, são criados
+para incorporar algo ao projeto e, portanto, não são permanentes - uma
+vez incorporados, são removidos.
+
+Nos esquemas de trabalho, os membros são instruídos a fazerem o
+desenvolvimentos nos ramos de demandae jamais nos ramos permanentes. Ao
+concluir essa unidade de trabalho, esse *branch* é enviado para o
+servidor com um `push`
+
+```{r, engine="bash", eval=FALSE}
+## Envia o desenvolvido em um ramo.
+git push origin issue#33
+```
 
-### Merge Request ###
+Na interface web, o membro faz um *merge request* desse ramo para um
+ramo permamente, que em projetos simples é o *master* mas em projetos
+maiores é usualmente o *devel*.
+
+Em ambos os serviços, o *merge resquest* leva para um página na qual
+você escolhe que ramo de demanda (doador) será incorporado a um ramo
+permamente (receptor). Ao confirmar os ramos envolvidos, tem-se uma
+caixa de texto destinada as informações sobre o que as modificações a
+serem incorporadas. Elas servem para justificar, esclarecer e informar o
+responsável pelo *merge* sobre a incorporação. Quando o projeto é
+coletivo e não individual, um membro pode ser indicado como responsável
+pelo *merge*.
+
+Na situação de um *fork*, o processo ocorre de forma semelhante. A
+sequência de etapas é: fazer o *fork* do projeto para a sua conta, 2)
+clonar o projeto para sua máquina, 3) criar um *branch* e fazer o
+desenvolvimento nele, 4) subir o *branch* (*push*) para a sua conta e 5)
+fazer um *merge request* para incorporar as modificações.
+
+Quando o projeto é um *fork*, na hora de escolher o ramo permanente
+(receptor) tem-se duas opções: 1) incorporar ao *master* da sua cópia
+ou 2) incorporar ao *master* do original. Outra opção é incorporar ao
+*master* da sua cópia e depois pedir um *merge request* do seu *master*
+para o *master* do original. Essa última é útil quando a quantidade de
+modificações é maior e portanto, o trabalho vai levar mais tempo.
+
+O próprio serviço Web tem recurso para a apliação do *merge* sem
+precisar copiar os ramos envolvidos. Isso facilita bastante o
+trabalho. Porém, não haver conflito de *merge* não significa que as
+modificações incorparadas estão funcionais, ou seja, as modificações
+feitas precisam ser testadas localmente para verificar de tiveram
+efeito. É possível habilitar o serviço Git para checar se o projeto é
+executável, em caso de softwares. Esse recurso se chama intergração
+contínua e veremos na próxima sessão.
+
+Em caso de confito de *merge*, tem-se baixar os ramos. Localmente
+pode-se comparar as diferenças entre eles para entender as fontes de
+conflito. Para isso são recomendáveis as interfaces para Git que serão
+discutidas no próximo Capítulo. Uma vez que o *merge* foi resolvido,
+deve-se fazer o *push* o ramo permanente (receptor) para o serviço web
+que já reconheçe que o *merge* foi feito e fecha a requisição.
+
+Recomenda-se que os ramos de demanda sejam removidos após a incorporação
+nos ramos permanentes. Isso torna o projeto mais claro e concentrado em
+ramos definitivos colhedores de desenvolvimento. Pode-se exluir o ramo
+de demanda incorporado direto pela interface. Por linha de comando
+também é possível
+
+```{r, engine="bash", eval=FALSE}
+## Deleta o branch issue#33 no servidor (origin).
+git push origin :issue#33
+
+## Deleta o branch issue#33 localmente.
+git branch -d issue#33
+
+## Deleta a cópia do issue#33 que veio do origin.
+git branch -dr origin/issue#33
+```
+
+Ao concluir incorporar uma contribuição grande, é interessante marcar o
+*commit* vinculado à esse *merge* de uma forma destacável, como por
+exemplo, com uma *tag*.
 
-Funciona para *branches* e *forks*.
+```{r, engine="bash", eval=FALSE}
+## Lista as tags existentes.
+git tag
+
+## Adiciona uma tag ao último commit.
+git tag -a v1.0 -m "Versão 1.0 do software"
+```
 
 ## Integração contínua ##
 
@@ -532,3 +706,4 @@ funcionando/instalando sem erros.
 [^1]: http://technologyconversations.com/2015/10/16/github-vs-gitlabs-vs-bitbucket-server-formerly-stash/
 [Digital Ocean]: https://www.digitalocean.com/community/tutorials/how-to-use-the-gitlab-one-click-install-image-to-manage-git-repositories
 [GitLab]: https://about.gitlab.com/
+[Macmillan]: http://www.macmillandictionary.com