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