From f43d067d1fe9a5b701d9b644ad3264e1ed3d74f4 Mon Sep 17 00:00:00 2001
From: Alessandra <alessandra.zeizer@gmail.com>
Date: Tue, 17 Nov 2015 14:51:01 -0200
Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=A3o=20do=20cap=C3=ADtulo=204=20-?=
 =?UTF-8?q?=20projetos=20remotos?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 cap04.Rmd | 127 ++++++++++++++++++++------------------
 cap04.md  | 178 ++++++++++++++++++++++++++++--------------------------
 2 files changed, 162 insertions(+), 143 deletions(-)

diff --git a/cap04.Rmd b/cap04.Rmd
index fdf7cea..359699e 100644
--- a/cap04.Rmd
+++ b/cap04.Rmd
@@ -1,5 +1,5 @@
 ---
-title: "Projetos remotos"
+title: "4. Projetos remotos"
 author: "PET Estatística"
 date: "29/10/2015"
 output:
@@ -9,112 +9,121 @@ output:
         theme: flatly
         keep_md: true
 ---
+    
+## 4.1. Criando um repositório Git
+    
+Primeiramente é necessário ter acesso a um servidor linux com servidor SSH, no qual o usuário poderá ter seus repositórios. Será utilizado um diretório no qual será armazenado o repositório, que será definido como remoto.
+No exemplo a seguir o usuário cria um repositório remoto chamado `TesteRep`e o armazena em um diretório criado `~/git`:
+    
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
+# Para criar um diretório git na sua home:
+mkdir ~/git
+# Para criar um repositório git:
+mkdir TesteRep.git
+# Para definir TesteRep como um repositório remoto:
+git --bare init
+```
+
+As configurações do servidor estão completas. A partir de agora serão dados os primeiros comandos para iniciar o repositório criado.
+
+
+
 
-## 1. Configuração de conexão ssh com servidor
+## 4.2. 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 obter uma conexão entre a máquina e o servidor, o usuário deve obter uma chave ssh. Para isso começamos com o seguinte comando no terminal:
-
-```{r, engine="sh", eval=FALSE}
+    
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
 ## Gerando uma chave ssh
 ssh-keygen -t rsa -C "usuario@email.com"
 
 ```
 
 A partir deste comando, o usuário poderá alterar o diretório onde será salva a chave ssh. O usuário pode permanecer com o diretório padrão, basta apertar Enter.
-Agora foram criados dois arquivos no diretório, **id_rsa** e **id_rsa.pub** 
+Agora foram criados dois arquivos no diretório, `id_rsa` e `id_rsa.pub`. 
 Depois de escolher o diretório onde serão salvos os arquivos, o usuário terá a opção de digitar uma senha ou deixar o espaço em branco.
 
 Para visualizar a chave basta o usuário digitar o seguinte comando:
-
-```{r, engine="sh", eval=FALSE}
- cat ~/.ssh/id_rsa.pub
+    
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
+cat ~/.ssh/id_rsa.pub
 ```
 
-No arquivo **id_rsa.pub** está a chave. O usuário deve copiar o texto deste arquivo na íntegra.
-Para gerar a conexão ssh com o servidor o usuário deve abrir 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). O usuário deve 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.
+No arquivo `id_rsa.pub` está a chave. O usuário deve copiar o texto deste arquivo na íntegra.
+Para gerar a conexão ssh com o servidor o usuário deve abrir 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). O usuário deve 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:
-```{r, engine="sh", eval=FALSE}
+    
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
 ssh -T git@gitlab.c3sl.ufpr.br
 ```
 
 
-## 2. Criando um repositório Git
 
-Criar um repositório no Git e clonar na sua máquina:
-No link [New project](https://gitlab.c3sl.ufpr.br/projects/new) do gitlab  o usuário deve nomear seu novo projeto (como exemplo nomeamos de **Teste**), escrever uma breve descrição e selecionar a visibilidade dele (private, internal ou public).
-Após criar o projeto, uma nova página apresentará instruções com linhas de comando para criar um novo repositório.
 
+## 4.3. Os comandos clone, push, pull e fetch
 
-```{r, engine="sh", eval=FALSE}
-git clone git@gitlab.c3sl.ufpr.br:usuario/Teste.git
-cd Teste
-touch README.md
-git add README.md
-git commit -m "add README"
-git push -u origin master
+### Git clone
+Este comando é usado para clonar um repositório do servidor remoto para um servidor local. Caso o usuário queira copiar um repositório que já existe para realizar colaborações em um projeto que queira participar. 
+O usuário terá acesso a todos os arquivos e poderá verificar as diferentes versões deste.
+No exemplo abaixo temos uma bibliotaca Git, chamada "TesteClone", que será clonado da seguinte forma:
+    
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
+git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/TesteClone.git
 ```
 
-Acima foi clonado o repositório git na máquina e criado um arquivo **README.md**, esse arquivo aparece na capa do seu no repositório.
-
-Agora o usuário já pode criar e alterar arquivos e transferir estes para seu repositório remoto. Basta utilizar os comandos **git add**, **git commit** e **git push**.
+Desta forma o usuário terá um diretório `TesteClone` em seu computador, onde estarão todos os arquivos do projeto nele.
 
+O usuário 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}
+git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/TesteClone.git DirTeste
+```
 
-## 3. Os comandos clone, push, pull e fetch
 
 ### Git Push
 
-Como apresentado no capítulo anterior (Projetos locais) os comandos **git add** e **git commit** adicionam os arquivos no repositório. A próxima etapa é enviar o arquivo para o repositório remoto. 
-Para enviar é necessário o comando **push**:
-```{r, engine="sh", eval=FALSE}
+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}
 git push origin master
 ```
 
+É importante ressaltar que se dois usuários clonarem ao mesmo tempo, realizarem modificações e enviar 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
 
-Assim como o ** git push **, o ** git pull ** também faz transferência de arquivos, porém são transferidos do repositório remoto para a máquina, este comando faz o merge automaticamente.
+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.
 
-```{r, engine="sh", eval=FALSE}
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
 git pull origin master
 ```
 
 ### Git fetch
 
-O ** git fetch ** baixa arquivos do diretório remoto, porém as modificações devem ser atualizadas por um merge.
+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.
 
-```{r, engine="sh", eval=FALSE}
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
 git fetch origin master
 ```
 
-Para verificar as modificações realizadas entre versões de um arquivo basta utilizar o comando ** git diff **:
-
-```{r, engine="sh", eval=FALSE}
+Para verificar as modificações realizadas entre versões de um arquivo basta utilizar o comando `git diff`:
+    
+**Exemplo:**
+    ```{r, engine="sh", eval=FALSE}
 git diff master origin/master
 ```
- 
- 
-### Git clone
-
-O comando **git clone**, mostrado na seção anterior, tem a finalidade de clonar repositórios existentes na máquina do usuário.
-
-```{r, engine="sh", eval=FALSE}
-git clone git@gitlab.c3sl.ufpr.br:usuario/Teste.git
-
-```
-
-
-## 4. Projetos remotos ##
 
-### 4.1 - Configuração de conexão ssh com servidor ###
-* Chaves públicas: introdução e breve descrição, facilidade da criação de um repositório devido a disponibilidade do servidor c3sl;
-* Criando chave pública ssh: como gerar uma chave pública ssh que realizará uma conexão segura entre a máquina e o servidor;
 
-### 4.2 - Clone, push, pull, fetch ###
-* Introdução: colaborando em trabalhos coletivos;
-* Clone: como copiar uma um repositório já existente para a sua máquina;
-* Push: como transferir committs de um repositório local para um repositório remoto;
-* Pull: como importar e mesclar arquivos do repositório remoto para a máquina;
-* Fetch: como importar arquivos do repositório remoto para o repositório local, é possível verificar o arquivo antes de integrá-lo ao projeto com o git merge;
-* Pull request: como facilitar a colaboração dos desenvolvedores.
diff --git a/cap04.md b/cap04.md
index 82b752a..41903cc 100644
--- a/cap04.md
+++ b/cap04.md
@@ -1,121 +1,131 @@
-# Projetos remotos
+# 4. Projetos remotos
 PET Estatística  
 29/10/2015  
+    
+## 4.1. Criando um repositório Git
+    
+Primeiramente é necessário ter acesso a um servidor linux com servidor SSH, no qual o usuário poderá ter seus repositórios. Será utilizado um diretório no qual será armazenado o repositório, que será definido como remoto.
+No exemplo a seguir o usuário cria um repositório remoto chamado `TesteRep`e o armazena em um diretório criado `~/git`:
+    
+**Exemplo:**
+    
+    ```sh
+    # Para criar um diretório git na sua home:
+    mkdir ~/git
+    # Para criar um repositório git:
+    mkdir TesteRep.git
+    # Para definir TesteRep como um repositório remoto:
+    git --bare init
+    ```
+
+As configurações do servidor estão completas. A partir de agora serão dados os primeiros comandos para iniciar o repositório criado.
 
-## 1. 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 obter uma conexão entre a máquina e o servidor, o usuário deve obter uma chave ssh. Para isso começamos com o seguinte comando no terminal:
 
+## 4.2. Configuração de conexão ssh com servidor
 
-```sh
-## Gerando uma chave ssh
-ssh-keygen -t rsa -C "usuario@email.com"
+O git possibilita ao usuário realizar uma chave ssh que fará uma conexão segura da sua máquina com o servidor.
 
-```
+Para obter uma conexão entre a máquina e o servidor, o usuário deve obter uma chave ssh. Para isso começamos com o seguinte comando no terminal:
+    
+**Exemplo:**
+    
+    ```sh
+    ## Gerando uma chave ssh
+    ssh-keygen -t rsa -C "usuario@email.com"
+    
+    ```
 
 A partir deste comando, o usuário poderá alterar o diretório onde será salva a chave ssh. O usuário pode permanecer com o diretório padrão, basta apertar Enter.
-Agora foram criados dois arquivos no diretório, **id_rsa** e **id_rsa.pub** 
+Agora foram criados dois arquivos no diretório, `id_rsa` e `id_rsa.pub`. 
 Depois de escolher o diretório onde serão salvos os arquivos, o usuário terá a opção de digitar uma senha ou deixar o espaço em branco.
 
 Para visualizar a chave basta o usuário digitar o seguinte comando:
+    
+**Exemplo:**
+    
+    ```sh
+    cat ~/.ssh/id_rsa.pub
+    ```
 
-
-```sh
- cat ~/.ssh/id_rsa.pub
-```
-
-No arquivo **id_rsa.pub** está a chave. O usuário deve copiar o texto deste arquivo na íntegra.
-Para gerar a conexão ssh com o servidor o usuário deve abrir 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). O usuário deve 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.
+No arquivo `id_rsa.pub` está a chave. O usuário deve copiar o texto deste arquivo na íntegra.
+Para gerar a conexão ssh com o servidor o usuário deve abrir 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). O usuário deve 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:
-
-```sh
-ssh -T git@gitlab.c3sl.ufpr.br
-```
-
-
-## 2. Criando um repositório Git
-
-Criar um repositório no Git e clonar na sua máquina:
-No link [New project](https://gitlab.c3sl.ufpr.br/projects/new) do gitlab  o usuário deve nomear seu novo projeto (como exemplo nomeamos de **Teste**), escrever uma breve descrição e selecionar a visibilidade dele (private, internal ou public).
-Após criar o projeto, uma nova página apresentará instruções com linhas de comando para criar um novo repositório.
-
+    
+**Exemplo:**
+    
+    ```sh
+    ssh -T git@gitlab.c3sl.ufpr.br
+    ```
 
 
-```sh
-git clone git@gitlab.c3sl.ufpr.br:usuario/Teste.git
-cd Teste
-touch README.md
-git add README.md
-git commit -m "add README"
-git push -u origin master
-```
 
-Acima foi clonado o repositório git na máquina e criado um arquivo **README.md**, esse arquivo aparece na capa do seu no repositório.
 
-Agora o usuário já pode criar e alterar arquivos e transferir estes para seu repositório remoto. Basta utilizar os comandos **git add**, **git commit** e **git push**.
+## 4.3. Os comandos clone, push, pull e fetch
 
+### Git clone
+Este comando é usado para clonar um repositório do servidor remoto para um servidor local. Caso o usuário queira copiar um repositório que já existe para realizar colaborações em um projeto que queira participar. 
+O usuário terá acesso a todos os arquivos e poderá verificar as diferentes versões deste.
+No exemplo abaixo temos uma bibliotaca Git, chamada "TesteClone", que será clonado da seguinte forma:
+    
+**Exemplo:**
+    
+    ```sh
+    git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/TesteClone.git
+    ```
+
+Desta forma o usuário terá um diretório `TesteClone` em seu computador, onde estarão todos os arquivos do projeto nele.
+
+O usuário 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:**
+    
+    ```sh
+    git clone git@gitlab.c3sl.ufpr.br:pet-estatistica/TesteClone.git DirTeste
+    ```
 
-## 3. Os comandos clone, push, pull e fetch
 
 ### Git Push
 
-Como apresentado no capítulo anterior (Projetos locais) os comandos **git add** e **git commit** adicionam os arquivos no repositório. A próxima etapa é enviar o arquivo para o repositório remoto. 
-Para enviar é necessário o comando **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`:
+    
+**Exemplo:**
+    
+    ```sh
+    git push origin master
+    ```
 
-```sh
-git push origin master
-```
+É importante ressaltar que se dois usuários clonarem ao mesmo tempo, realizarem modificações e enviar 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
 
-Assim como o ** git push **, o ** git pull ** também faz transferência de arquivos, porém são transferidos do repositório remoto para a máquina, este comando faz o merge automaticamente.
-
+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.
 
-```sh
-git pull origin master
-```
+**Exemplo:**
+    
+    ```sh
+    git pull origin master
+    ```
 
 ### Git fetch
 
-O ** git fetch ** baixa arquivos do diretório remoto, porém as modificações devem ser atualizadas por um merge.
-
-
-```sh
-git fetch origin master
-```
-
-Para verificar as modificações realizadas entre versões de um arquivo basta utilizar o comando ** git diff **:
-
-
-```sh
-git diff master origin/master
-```
- 
- 
-### Git clone
-
-O comando **git clone**, mostrado na seção anterior, tem a finalidade de clonar repositórios existentes na máquina do usuário.
-
-
-```sh
-git clone git@gitlab.c3sl.ufpr.br:usuario/Teste.git
-
-```
+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:**
+    
+    ```sh
+    git fetch origin master
+    ```
 
-## 4. Projetos remotos ##
+Para verificar as modificações realizadas entre versões de um arquivo basta utilizar o comando `git diff`:
+    
+**Exemplo:**
+    
+    ```sh
+    git diff master origin/master
+    ```
 
-### 4.1 - Configuração de conexão ssh com servidor ###
-* Chaves públicas: introdução e breve descrição, facilidade da criação de um repositório devido a disponibilidade do servidor c3sl;
-* Criando chave pública ssh: como gerar uma chave pública ssh que realizará uma conexão segura entre a máquina e o servidor;
 
-### 4.2 - Clone, push, pull, fetch ###
-* Introdução: colaborando em trabalhos coletivos;
-* Clone: como copiar uma um repositório já existente para a sua máquina;
-* Push: como transferir committs de um repositório local para um repositório remoto;
-* Pull: como importar e mesclar arquivos do repositório remoto para a máquina;
-* Fetch: como importar arquivos do repositório remoto para o repositório local, é possível verificar o arquivo antes de integrá-lo ao projeto com o git merge;
-* Pull request: como facilitar a colaboração dos desenvolvedores.
-- 
GitLab