From a64495809777dd6c5f2ed5959010bcdaf489ce3d Mon Sep 17 00:00:00 2001
From: Walmes Zeviani <walmes@ufpr.br>
Date: Sun, 6 Dec 2015 16:02:19 -0200
Subject: [PATCH] =?UTF-8?q?Adequa=C3=A7=C3=B5es=20para=20Latex=20e=20edi?=
 =?UTF-8?q?=C3=A7=C3=A3o:?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

  - Modifica YAML de acordo com o cap05;
  - Usa bash ao invés de sh como engine;
  - Acomoda o texto para 72 colunas;
  - Remove linhas vazias denecessárias;
---
 cap04.Rmd | 241 ++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 152 insertions(+), 89 deletions(-)

diff --git a/cap04.Rmd b/cap04.Rmd
index 8961a2d..9cd4cb7 100644
--- a/cap04.Rmd
+++ b/cap04.Rmd
@@ -1,22 +1,28 @@
 ---
-title: "4. Projetos remotos"
-author: "PET Estatística"
-date: "29/11/2015"
+title: "Projetos Remotos"
+author: "PET Estatística UFPR"
+graphics: yes
 output:
-    html_document:
-        highlight: pygments
-        toc: true
-        theme: flatly
-        keep_md: true
+  pdf_document:
+    template: template.tex
+    highlight: default
+    toc: true
+    toc_depth: 2
+    keep_tex: true
+    number_sections: true
 ---
 
+\chapter{Projetos Remotos}
 
+# Introdução #
 
-## Introdução
+Para colaborar em projetos coletivos no Git é preciso ter um repositório
+remoto. Este repositório conterá todo o histórico das versões dos
+arquivos editados. A seguir serão abordados como adicionar, remover e
+gerenciar repositórios remotos.
 
-Para colaborar em projetos coletivos no Git é preciso ter um repositório remoto. Este repositório conterá todo o histórico das versões dos arquivos editados. A seguir serão abordados como adicionar, remover e gerenciar repositórios remotos.
-
-Primeiramente será apresentado o comando `git remote`, este é usado para verificar quais repositórios estão configurados.
+Primeiramente será apresentado o comando `git remote`, este é usado para
+verificar quais repositórios estão configurados.
 
 **Exemplo:** para retornar a lista de repositórios:
 
@@ -24,18 +30,23 @@ Primeiramente será apresentado o comando `git remote`, este é usado para verif
 git remote
 ```
 
-No comando acima é possível visualizar o remoto padrão **origin** (URL SSH para onde será possível enviar os seus arquivos).
+No comando acima é possível visualizar o remoto padrão **origin** (URL
+SSH para onde será possível enviar os seus arquivos).
 
-**Exemplo:** para retornar o nome dos repositórios com a URL onde foram armazanados:
+**Exemplo:** para retornar o nome dos repositórios com a URL onde foram
+armazanados:
 
 ```{r, engine="bash", echo=TRUE}
 git remote -v
 ```
 
+## Adicionando repositórios remotos ##
 
-### Adicionando repositórios remotos
-
-O comando `git remote add` adiciona um repositório remoto. No exemplo a seguir será adicionado um repositório chamado **MeuRepo** ao qual será vinculado a URL  `git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git`. Usaremos como exemplo o projeto Git **Apostila-git**.
+O comando `git remote add` adiciona um repositório remoto. No exemplo a
+seguir será adicionado um repositório chamado **MeuRepo** ao qual será
+vinculado a URL
+`git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git`. Usaremos
+como exemplo o projeto Git **Apostila-git**.
 
 **Exemplo:**
 ```{r, engine="bash", echo=TRUE}
@@ -44,32 +55,37 @@ git remote add MeuRepo git@gitlab.c3sl.ufpr.br:pet-estatistica/apostila-git.git
 git remote -v
 ```
 
-Pare acessar localmente o branch master do projeto **Apostila-git** será usado `MeuRepo/master`.
+Pare acessar localmente o branch master do projeto **Apostila-git** será
+usado `MeuRepo/master`.
 
-### Obtendo informações de um Remoto
+## Obtendo informações de um Remoto ##
 
-Você pode acessar as informações de qualquer repositório remoto com o comando `git remote show`, que retornará a URL e os `branches`. 
+Você pode acessar as informações de qualquer repositório remoto com o
+comando `git remote show`, que retornará a URL e os `branches`.
 
 **Exemplo:**
 ```{r, engine="bash", echo=TRUE}
 git remote show origin
 ```
 
-### Renomeado Remotos
+## Renomeado Remotos ##
 
-O comando `git remote rename` pode modificar o nome de um repositório remoto. A seguir o repositório `MeuRepo`será renomeado para `RenameRepo`. 
+O comando `git remote rename` pode modificar o nome de um repositório
+remoto. A seguir o repositório `MeuRepo`será renomeado para
+`RenameRepo`.
 
 **Exemplo:**
-```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 git remote rename MeuRepo RenameRepo
 ```
 
-### Removendo Remotos
+## Removendo Remotos ##
 
-Para remover remotos é utilizado o comando `git remote rm`, agora será removido o repositório renomeado anteriormente `RenameRepo`.
+Para remover remotos é utilizado o comando `git remote rm`, agora será
+removido o repositório renomeado anteriormente `RenameRepo`.
 
 **Exemplo:**
-```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
  git remote rm RenameRepo
 ```
 
@@ -77,15 +93,20 @@ Para remover remotos é utilizado o comando `git remote rm`, agora será removid
 
 Há quatro tipos diferentes de protocolos Git (Local, Git, HTTP e SSH).
 
-Nesta apostila será abordado apenas o Secure Shell (SSH). Por ser fácil de fazer a configuração do acesso deste protocolo aos servidores, este é o mais usual.
+Nesta apostila será abordado apenas o Secure Shell (SSH). Por ser fácil
+de fazer a configuração do acesso deste protocolo aos servidores, este é
+o mais usual.
 
-## Criando um Repositório Git
+# Criando um Repositório Git #
     
-Primeiramente é necessário ter acesso a um servidor Linux com chave SSH, no qual você poderá ter seus repositórios. É definido um diretório no qual será armazenado o repositório remoto.
-No próximo exemplo é preciso criar um repositório remoto chamado `MeuRepo` e o armazenar em um diretório `~/git`:
+Primeiramente é necessário ter acesso a um servidor Linux com chave SSH,
+no qual você poderá ter seus repositórios. É definido um diretório no
+qual será armazenado o repositório remoto.  No próximo exemplo é preciso
+criar um repositório remoto chamado `MeuRepo` e o armazenar em um
+diretório `~/git`:
     
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+    ```{r, engine="bash", eval=FALSE}
 # Para criar um diretório git na sua home:
 mkdir ~/git
 # Para criar um repositório git:
@@ -94,160 +115,202 @@ mkdir MeuRepo.git
 git --bare init
 ```
 
-As configurações do servidor estão completas. A partir você pode realizar os primeiros comandos para iniciar o repositório criado.
+As configurações do servidor estão completas. A partir você pode
+realizar os primeiros comandos para iniciar o repositório criado.
 
+# Git no servidor #
 
-## Git no servidor
-
-Primeiramente, para configurar o Git no Servidor e configurar os protocolos, clonaremos o repositório existente em um repositório limpo. 
-**Observação:** você poderá colocar um repositório no Servidor se este não contém um diretório de trabalho. 
+Primeiramente, para configurar o Git no Servidor e configurar os
+protocolos, clonaremos o repositório existente em um repositório limpo.
+**Observação:** você poderá colocar um repositório no Servidor se este
+não contém um diretório de trabalho.
 
 **Exemplo:**
-```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
  git clone --bare MeuRepo MeuRepo.git
 ```
 
-Acima foi criado um repositório limpo `MeuRepo.git`, no qual está armazenada a cópia de todos os arquivos do diretorio Git.
+Acima foi criado um repositório limpo `MeuRepo.git`, no qual está
+armazenada a cópia de todos os arquivos do diretorio Git.
 
-Após este primeiro passo o repositório limpo será colocado no Servidor e configurado os protolocos. 
-No exemplo abaixo, supondo que você tem configurado um servidor `git.servidor.com`, e um diretório `/dir/git`no qual você quer armazenar seus repositórios. Ao copiar o seu repositório limpo, você pode configurar seu novo repositório. 
+Após este primeiro passo o repositório limpo será colocado no Servidor e
+configurado os protolocos.  No exemplo abaixo, supondo que você tem
+configurado um servidor `git.servidor.com`, e um diretório `/dir/git`no
+qual você quer armazenar seus repositórios. Ao copiar o seu repositório
+limpo, você pode configurar seu novo repositório.
 
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+    ```{r, engine="bash", eval=FALSE}
 scp -r MeuRepo.git usuario@git.example.com:/dir/git
 ```
 
-Agora o repositório pode ser clonado por outros usuários, que podem ter acesso de escrita e de envio de arquivos `push` no diretório. 
+Agora o repositório pode ser clonado por outros usuários, que podem ter
+acesso de escrita e de envio de arquivos `push` no diretório.
 
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 git clone usuario@git.example.com:/dir/git/MeuRepo.git
 ```
 
+# Configuração de Conexão SSH com Servidor #
 
-## Configuração de Conexão SSH com Servidor
-
-O Git possibilita ao usuário realizar uma chave SSH que fará uma conexão segura da sua máquina com o servidor. Para isso começamos com o seguinte comando no terminal:
+O Git possibilita ao usuário realizar uma chave SSH que fará uma conexão
+segura da sua máquina com o servidor. Para isso começamos com o seguinte
+comando no terminal:
     
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+    ```{r, engine="bash", eval=FALSE}
 ## Gerando uma chave ssh
 ssh-keygen -t rsa -C "usuario@email.com"
 ```
 
-A partir deste comando, será possível alterar o diretório onde será salva a chave SSH. O usuário tem a opção de permanecer com o diretório padrão, para isso basta apertar Enter.
-A partir disso, são criados dois arquivos no diretório, o `id_rsa` e o `id_rsa.pub`.
-Após escolher o diretório onde serão salvos os arquivos, você terá a opção de digitar uma senha ou deixar o espaço em branco.
+A partir deste comando, será possível alterar o diretório onde será
+salva a chave SSH. O usuário tem a opção de permanecer com o diretório
+padrão, para isso basta apertar Enter.  A partir disso, são criados dois
+arquivos no diretório, o `id_rsa` e o `id_rsa.pub`.  Após escolher o
+diretório onde serão salvos os arquivos, você terá a opção de digitar
+uma senha ou deixar o espaço em branco.
 
 Para visualizar a chave basta digitar o seguinte comando:
     
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 cat ~/.ssh/id_rsa.pub
 ```
 
-A chave está no arquivo `id_rsa.pub`. O usuário deve copiar o texto deste arquivo na íntegra.
-Para gerar a conexão ssh com o servidor, deve visitar o site [https://gitlab.c3sl.ufpr.br/profile/keys](https://gitlab.c3sl.ufpr.br/profile/keys) e clicar em [Add SSH Key](https://gitlab.c3sl.ufpr.br/profile/keys/new). É necessário escrever um título para a sua nova chave, no campo `key` colar o texto copiado do arquivo `id_rsa.pub` e adicionar sua nova chave.
-
-Para checar a configuração da sua máquina com o sevidor basta realizar o seguinte comando:
+A chave está no arquivo `id_rsa.pub`. O usuário deve copiar o texto
+deste arquivo na íntegra.  Para gerar a conexão ssh com o servidor, deve
+visitar o site
+[https://gitlab.c3sl.ufpr.br/profile/keys](https://gitlab.c3sl.ufpr.br/profile/keys)
+e clicar em
+[Add SSH Key](https://gitlab.c3sl.ufpr.br/profile/keys/new). É
+necessário escrever um título para a sua nova chave, no campo `key`
+colar o texto copiado do arquivo `id_rsa.pub` e adicionar sua nova
+chave.
+
+Para checar a configuração da sua máquina com o sevidor basta realizar o
+seguinte comando:
     
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 ssh -T git@gitlab.c3sl.ufpr.br
 ```
  
- 
 **Configurando o servidor** 
  
-Agora será abordado como configurar o acesso SSH do ponto de vista do servidor.
-Você precisa criar um usuário Git e um diretório `.ssh` para este usuário.
+Agora será abordado como configurar o acesso SSH do ponto de vista do
+servidor.  Você precisa criar um usuário Git e um diretório `.ssh` para
+este usuário.
 
 **Exemplo:** criar usuário e diretório.
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 sudo adduser git
 su git
 cd
 mkdir .ssh
 ```
 
-Agora, você terá um arquivo chamado `authorized_keys` onde será adicionado uma chave pública de algum desenvolvedor. Após obter chaves de alguns usuários, você pode salvá-las no arquivo `authorized_keys`, como no exemplo a seguir.
+Agora, você terá um arquivo chamado `authorized_keys` onde será
+adicionado uma chave pública de algum desenvolvedor. Após obter chaves
+de alguns usuários, você pode salvá-las no arquivo `authorized_keys`,
+como no exemplo a seguir.
 
 **Exemplo:**
-```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 cat /tmp/id_rsa1.pub >> ~/.ssh/authorized_keys # chave do primeiro usuário 
 cat /tmp/id_rsa2.pub >> ~/.ssh/authorized_keys # chave do segundo usuário
 ...
 ```
 
-Depois de armazenar as chaves dos usuários, basta criar um repositório limpo (sem um diretório de trabalho) para eles. Como visto anteriormente:
+Depois de armazenar as chaves dos usuários, basta criar um repositório
+limpo (sem um diretório de trabalho) para eles. Como visto
+anteriormente:
 
 **Exemplo:**
-```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 cd/dir/git
 mkdir NovoProjeto.git
 cd NovoProjeto.git
 git –bare init
 ```
 
-Agora os usuários, cujas chaves foram salvas no arquivo `authorized_keys` podem compartilhar arquivos no repositório com os comando `git init`, `git add`, `git commit`, `git remote add` e `git push origin master`.
+Agora os usuários, cujas chaves foram salvas no arquivo
+`authorized_keys` podem compartilhar arquivos no repositório com os
+comando `git init`, `git add`, `git commit`, `git remote add` e `git
+push origin master`.
 
+# Comandos clone, push, pull e fetch #
 
-## Comandos clone, push, pull e fetch
+## Git clone ##
 
-### Git clone
-
-Este comando é usado para clonar um repositório do servidor remoto para um servidor local, caso você queira copiar um repositório que já existe para realizar colaborações em um projeto que queira participar. 
-Você terá acesso a todos os arquivos e poderá verificar as diferentes versões destes.
-No exemplo abaixo temos uma bibliotaca Git, chamada **TesteClone**, que será clonado da seguinte forma:
+Este comando é usado para clonar um repositório do servidor remoto para
+um servidor local, caso você queira copiar um repositório que já existe
+para realizar colaborações em um projeto que queira participar.  Você
+terá acesso a todos os arquivos e poderá verificar as diferentes versões
+destes.  No exemplo abaixo temos uma bibliotaca Git, chamada
+**TesteClone**, que será clonado da seguinte forma:
     
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+    ```{r, engine="bash", eval=FALSE}
 git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/TesteClone.git
 ```
 
-Desta forma você terá um diretório `TesteClone` em seu computador, onde estarão todos os arquivos do projeto nele.
+Desta forma você terá um diretório `TesteClone` em seu computador, onde
+estarão todos os arquivos do projeto nele.
 
-Você também terá a opção de clonar o repositório `TesteClone` em um diretório diferente do padrão Git, que no próximo exemplo denominaremos de `DirTeste`:
+Você também terá a opção de clonar o repositório `TesteClone` em um
+diretório diferente do padrão Git, que no próximo exemplo denominaremos
+de `DirTeste`:
     
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/TesteClone.git DirTeste
 ```
 
+## Git Push ##
 
-### Git Push
-
-Usado para transferência de arquivos entre repositório local e o servidor remoto. Como o nome já diz, o comando empurra os arquivos para o servidor remoto.
-No exemplo abaixo enviaremos a ramificação `Branch Master` para o servidor chamado `origin`:
+Usado para transferência de arquivos entre repositório local e o
+servidor remoto. Como o nome já diz, o comando empurra os arquivos para
+o servidor remoto.  No exemplo abaixo enviaremos a ramificação `Branch
+Master` para o servidor chamado `origin`:
     
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 git push origin master
 ```
 
-É importante ressaltar que se dois usuários clonarem ao mesmo tempo, realizarem modificações e enviarem os arquivos atualizados ao repositório utilizando o `Git push`, as modificações do usuário que realizou o push por último serão desconsideradas. 
+É importante ressaltar que se dois usuários clonarem ao mesmo tempo,
+realizarem modificações e enviarem os arquivos atualizados ao
+repositório utilizando o `Git push`, as modificações do usuário que
+realizou o push por último serão desconsideradas.
 
-### Git Pull
+## Git Pull ##
 
-Também utilizado para transferência de arquivos. O comando puxa os arquivos do servidor remoto para o repositório local e faz o merge do mesmo, fundindo a última versão com a versão atualizada.
+Também utilizado para transferência de arquivos. O comando puxa os
+arquivos do servidor remoto para o repositório local e faz o merge do
+mesmo, fundindo a última versão com a versão atualizada.
 
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 git pull origin master
 ```
 
-### Git fetch
+## Git fetch ##
 
-Assim como o comando `Git pull`, o `Git fetch` transfere arquivos do repositório remoto para o local, porém ele não realiza automaticamente o merge dos arquivos transferidos, o usuário deve fazer o merge manualmente.
+Assim como o comando `Git pull`, o `Git fetch` transfere arquivos do
+repositório remoto para o local, porém ele não realiza automaticamente o
+merge dos arquivos transferidos, o usuário deve fazer o merge
+manualmente.
 
 **Exemplo:**
-    ```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 git fetch origin master
 ```
 
-Para verificar as modificações realizadas entre versões de um arquivo basta utilizar o comando `git diff`:
+Para verificar as modificações realizadas entre versões de um arquivo
+basta utilizar o comando `git diff`:
     
 **Exemplo:**
-```{r, engine="sh", eval=FALSE}
+```{r, engine="bash", eval=FALSE}
 git diff master origin/master
 ```
 
-- 
GitLab