diff --git a/cap08/cap08_dt.Rmd b/cap08/cap08_dt.Rmd
index 0e7048a683ca20f8f02791ba11f84db9b6ed149d..1dde0fa571a3964db7d39c412d006c5a86d1edc6 100644
--- a/cap08/cap08_dt.Rmd
+++ b/cap08/cap08_dt.Rmd
@@ -9,10 +9,11 @@ Dicionário de Termos
 O `config` é um comando usado para ajustar as configurações padrão do git.
 Há duas configurações básicas a serem feitas: a inclusão do e-mail e 
 do nome do usuário git.
-Todas as configurações são globais e ficam armazenadas em um arquivo 
-chamado `.gitconfig`, que fica localizado no diretório padrão do usuário.
+Todas as configurações definidas como globais ficam armazenadas em um 
+arquivo chamado `.gitconfig`, que fica localizado no diretório padrão 
+do usuário.
 
-### Exemplo
+**Exemplo:**
 ```{r, engine='bash', eval=FALSE}
 # Configurando o usuário Ezio Auditore:
 git config --global user.name "Ezio Auditore"
@@ -20,7 +21,22 @@ git config --global user.name "Ezio Auditore"
 git config --global user.email ezio.auditore@exemple.com
 ```
 
-## ssh-keygen
+## SSH Key
+
+É uma chave de autenticação baseada em criptografia de chave pública
+(chave assimétrica). Essa criptografia torna o processo transferência 
+de arquivos entre o cliente e o servidor mais segura. 
+
+Para que o git local consiga se conectar a um servidor git remoto, é 
+necessário que esta chave seja gerada e que as devidas configurações
+sejam feitas tanto localmente quanto no servidor remoto,
+caso contrário, é exibido um erro e a conexão é interrompida.
+
+**Exemplo:**
+```{r, engine='bash', eval=FALSE}
+# Gerando chave SSH:
+ssh-keygen
+```
 
 
 ## Help
@@ -28,7 +44,7 @@ git config --global user.email ezio.auditore@exemple.com
 Todo comando git tem um manual de ajuda que pode ser exibido na tela
 com o comando `--help`.
 
-### Exemplo
+**Exemplo:**
 ```{r, engine='bash', eval=FALSE}
 # Exibir ajuda do comando status:
 git status --help
@@ -40,7 +56,7 @@ Um repositório é uma pasta gerenciada pelo git. A partir da criação deste,
 podemos marcar pontos de mudanças significativas nos arquivos gerenciados,
 sendo possível transitar entre as diferentes verões a medida do necessário.
 
-### Exemplo
+**Exemplo:**
 ```{r, engine='bash', eval=FALSE}
 # Iniciar repositório na pasta atual:
 git init
@@ -48,11 +64,27 @@ git init
 
 ## Stagin Area
 
-A stagin area é um espaço temporário na pasta gerenciada pelo git, onde ficam os arquivos
-antes de ser marcados como uma versão definitiva. Em tradução livre, stagin area
-é area de estágio, e podemos imaginar que o arquivo está estagiando antes de
+A stagin area é um espaço temporário na pasta gerenciada pelo git. É 
+aonde ficam os arquivos antes de ser marcados como uma versão definitiva. 
+Em tradução livre, stagin area é area de estágio, 
+podemos assim imaginar que o arquivo está estagiando antes de
 ser promovido a um arquivo definitivo.
 
+## Remote
+
+O `remote` mostra o servidor remoto aonde o
+seus arquivos git estão hospedados. O remote padrão
+geralmente é criado com o nome de `origin`, mas
+é possível adiciona-lo utilizando outros nomes e 
+até mesmo adicionar outros servidores remotos juntamente ao `origin`.
+
+**Exemplo:**
+```{r, engine='bash', eval=FALSE}
+# Adicionando um servidor remoto com nome origin:
+git remote add origin "git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git"
+```
+
+
 ## Clone
 
 O `clone` é usado quando deseja-se clonar um repositório que está
@@ -64,7 +96,7 @@ histórico de controle de versões sem a necessidade de uso da internet.
 é adicionado automaticamente, podendo ser acessado atravéz do nome 
 `origin`.
 
-### Exemplo
+**Exemplo:**
 ```{r, engine='bash', eval=FALSE}
 # Clonando o projeto desta apostila:
 git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git
@@ -72,63 +104,63 @@ git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git
 git remote
 ```
 
+## Status
+
+O status exibe a diferença entre o estado atual dos arquivos e o estado
+do ultimo `commit` do mesmo `branch`. São três estados possíveis:
+consolidado (committed), modificado (modified) e preparado (staged).
+
+**Exemplo:**
+```{r, engine='bash', eval=FALSE}
+# Pedindo o status:
+git status
+```
+
 ## Add
 
 O `add` adiciona (envia) os arquivos para a stagin area, para que 
 possa ser marcado no tempo por um commit.
 
-### Exemplo
+**Exemplo:**
 ```{r, engine="bash", eval=FALSE}
 # Adicionar todos os arquivos a stagin area:
 git add *
 ```
 
-
-## Commmit
+## Commit
 
 O `commit` marca os arquivos da stagin area como uma
 versão definitiva, para que posteriormente, caso algum erro ocorra, 
 possamos voltar para commits anteriores onde o código está 
 em pleno funcionamento.
 
-### Exemplo
+**Exemplo:**
 ```{r, engine="bash", echo=TRUE, eval=FALSE}
 git commit -m "Meu primeiro commit"
 ```
 
 ## Branch
 
-Os `branchs` são uma cópia dos arquivos do ultimo commit
-para um ambiente de desenvolvimento paralelo, ou seja, 
-ele cria uma cópia da sua pasta gerenciada, permitindo que as modificações
-em um branch não afete os arquivos em outro. Os branchs também são chamados
-de ramos de desenvolvimento.
+Os `branchs` são como uma cópia dos arquivos do ultimo commit
+para um ambiente de desenvolvimento paralelo, o que
+permite que as modificações em um `branch` não afete os arquivos em outro.
+Os branchs também são chamados de ramos de desenvolvimento.
 
-### Exemplo
-```{r, engine='bash', eval=FALSE}
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
 # Cria um branch chamado novoBranch
 git branch novoBranch
 ```
 
-## HEAD
-
 ## Checkout
 
-`Checkout` serve para transitar entre branchs e commits. Usando o
-checkout é possivel voltar a commits anteriores.
-
-## Reset
-
-## Remote
-
-Remote é utilizado o servidor remoto aonde o
-seus os arquivos git estão hospedados. O remote padrão
-geralmente é criado com o nome de `origin`, 
-e é possível adicionar outros remotes utilizando nomes diferentes.
+O `checkout` serve para transitar entre branchs e commits. 
+Usando o checkout é possivel voltar a commits anteriores.
 
-### Exemplo
-```{r, engine='bash', eval=FALSE}
-git remote add origin "git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git"
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Mudar do branch atual para o branch teste:
+git checkout teste
 ```
 
 ## Merge
@@ -143,29 +175,184 @@ quando duas ou mais pessoas modificam a mesma parte do código.
 Estes conflitos devem ser resolvidos manualmente, deixando a cargo do
 gerente de projetos decidir que parte do código deve permanecer.
 
-### Exemplo
+**Exemplo:**
 ```{r, engine='bash', eval=FALSE}
 # Faz merge do branch chamado novoBranch com o branch atual:
 git merge novoBranch
 ```
 
-## Status
-
 ## Rm
 
+O `git rm`, na sua forma mais comum, serve para remover um arquivo de 
+forma que ele deixe de sergerenciado pelo git e seja excluido do disco 
+rígido. Também é possível que o arquivo deixe de ser gerenciado 
+e permaneça no disco.
+
+Uma das vantagens é que, quando o arquivo é removido pelo `git rm`, ele 
+já aparece como preparado (staged), precisando somente que 
+a exclusão seja commitada.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Remover arquivo teste.tex do gerenciamento e do disco:
+git rm teste.tex
+
+# Remover arquivo teste.tex apenas do gerenciamento:
+git rm --cached teste.tex
+```
+
 ## Mv
 
-## Stash
+O `git mv` move ou renomeia arquivos, informando ao git que eles foram
+movidos ou renomeados.
 
-## Tag
+Caso a mudança seja feita sem esse comando o git entende que o arquivo
+foi deletado e que um novo arquivo foi criado, deixando de fora, 
+por exemplo, a ligação existente entre o arquivo e seus commits.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Renomeando o arquivo teste.tex para arquivo1.tex:
+git mv teste.tex arquivo1.tex
+```
+
+## Push
+
+O `push` é usado para "empurrar" os arquivos do repositório local 
+para o servidor remoto.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Atualizado o branch master (remoto), com o branch atual (local):
+git push origin master
+```
 
 ## Fetch 
 
+O `fetch` busca no repositório remoto os dados e arquivos que
+não estão no repositório local. É impostante frisar que o `fetch` não 
+faz o merge dos arquivos, deixando isso para ser feito manualmente 
+pelo usuário.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Buscando arquivos no servidor remoto origin:
+git fetch origin
+```
+
 ## Pull
 
+O `pull` é semelhante ao comando `fetch`, porém, puxa os 
+arquivos do servidor remoto fazendo merge. Caso haja algum conflito de
+merge, estes deverão ser resolvidos manualmente.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Puxando arquivos no servidor remoto origin:
+git pull origin
+```
+
+
+## HEAD
+
+`HEAD` é um arquivo que contém um apontador para o `branch` atual.
+Quando o `checkout` é executado para a mudança do `branch`, 
+esse arquivo é automaticamente modificado apontando agora para o
+novo local, permitindo que, quando o computador for desligado e depois
+ligado novamente, o git ainda esteja trabalhando com o mesmo `branch`
+de antes.
+
+## Tag
+
+As tags são usadas para marcar pontos específicos do desenvolvimento.
+Geralmente são usadas para marcar versões definitivas, como a v1.0, v2.0
+e assim por diante.
+
+Elas são divididas em dois tipos: leve e anotada.
+A `tag` leve simplemente aponta para um `commit` específico, já a `tag` 
+anotada é guardada como objtos inteiros, possuindo algumas informações
+relacionadas a ela, como o nome da pessoa que criou, a data, uma mensagem
+semelhante a de `commit`, entre outras.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Criando tag leve:
+git tag -l "v1.0.0"
+
+# Criando tag anotada:
+git tag -a v1.0 -m "Minha primeira tag anotada."
+```
+
+## Stash
+
+É uma maneira de não precisar fazer um `commit` para mudar de `branch`.
+Executando este comando, os arquivos modificados ficam salvos em uma
+pilha de modificações inacabadas, sendo possível transitar entre
+`branchs` e voltar ao trabalho inacabado quando necessário.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Fazendo o stash:
+git stash
+# Listando os stash criados:
+git stash list
+```
+
+## Reset
+
+Enquanto o `git checkout` somente transita entre os `commits`, 
+o `reset` pode também alterar o histórico, fazendo `commits` serem 
+apagados de maneira irreversível (--hard), ou serem apenas resetados 
+ao estado de não commitado (--soft).
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Apagando o ultimo commit (Voltando ao anterior):
+git reset --hard HEAD~1
+```
+
+
 ## Rebase
 
-## Bisect
+O `rebase` é usado para modificar `commits` antigos. Ele refaz a arvore
+de `commits`, sendo assim, não é uma boa ideia fazer um `push` da 
+alteração, pois modificara a arvore do servidor, afetando todos os 
+desenvolvedores.
+
+A idéia geral é que ele pega os commits de um ramo e "muda de base", 
+passando-os para novos commits do ramo atual, formando uma arvore com
+fluxo de trabalho linear.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Fazer o rebase do branch teste para o atual:
+git rebase teste
+```
 
+## Blame
+
+Pesquisa qual `commit` modificou determinado arquivo, com o objetivo
+de encontrar quem inseriu um erro e quando foi inserido.
+ Esse método também e chamado de anotação de arquivo.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Fazer
+```
+
+## Bisect
 
-[Pro Git](http://git-scm.com/book/en/v2) , escrito por Scott Chacon.
\ No newline at end of file
+O `bisect` realiza uma pesquisa binária (binary search) a procura de 
+erros. Para que a pesquisa ocorra, é necessário um ponto no tempo em que 
+no `commit` esteja tudo funcionando e um em que não esteja.
+
+**Exemplo:**
+```{r, engine='bash', echo=TRUE, eval=FALSE}
+# Pesquisa Binária:
+# Iniciando a pesquisa.
+git bisect start
+# Marcando o commit atual como não funcionando.
+git bisect bad
+# Marcando o commit com nome commit1 como funcionando:
+git bisect good commit1 
+```
\ No newline at end of file