Skip to content
Snippets Groups Projects
Commit f43d067d authored by Paula Alessandra Zeizer Dimas's avatar Paula Alessandra Zeizer Dimas
Browse files

Correção do capítulo 4 - projetos remotos

parent f75d54ca
No related branches found
No related tags found
1 merge request!26Issue#39
---
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.
# 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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment