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