# Fluxo de trabalho com repositório remoto, do clone ao push
# Introdução #
## Git clone
Para colaborar em projetos coletivos no Git é preciso ter um repositório
Este comando é usado para clonar um repositório do servidor remoto para
remoto. Este repositório conterá todo o histórico das versões dos
um servidor local, caso você queira copiar um repositório que já existe
arquivos editados. A seguir serão abordados como adicionar, remover e
para realizar colaborações em um projeto que queira participar. Você
gerenciar repositórios remotos.
terá acesso a todos os arquivos e poderá verificar as diferentes versões
destes. Supondo que sua equipe de trabalho possue uma biblioteca Git **Teste Clone**, onde são armazenados todos os arquivos. Você pode clonar estes arquivos para o seu diretório de trabalho e assim modificá-los conforme deseja.
Após clonar e realizar contribuições ao projeto, você pode enviá-los para o repositório remoto. Estes arquivos, após o `Git push`, estarão prontos para serem integrados ao projeto com o `merge`.
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="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.
Primeiramente será apresentado o comando `git remote`, este é usado para
## Git Pull
Para obter todos os arquivos presentes no projeto, você pode importar os arquivos do branch `master`.
Toda vez que você utilizar o `Git pull` a última versão de todos os arquivos estarão no seu diretório.
Este comando é 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="bash", eval=FALSE}
git pull origin master
```
## 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.
**Exemplo:**
```{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`:
**Exemplo:**
```{r, engine="bash", eval=FALSE}
git diff master origin/master
```
# Listar branches locais/remotos
O comando `git remote`, este é usado para
verificar quais repositórios estão configurados.
verificar quais repositórios estão configurados.
**Exemplo:** para retornar a lista de repositórios:
**Exemplo:** para retornar a lista de repositórios:
...
@@ -257,7 +323,10 @@ armazanados:
...
@@ -257,7 +323,10 @@ armazanados:
git remote -v
git remote -v
```
```
## Adicionando repositórios remotos ##
# Adicionar, renomear, deletar remote
## Adicionando repositórios remotos
O comando `git remote add` adiciona um repositório remoto. No exemplo a
O comando `git remote add` adiciona um repositório remoto. No exemplo a
seguir será adicionado um repositório chamado **MeuRepo** ao qual será
seguir será adicionado um repositório chamado **MeuRepo** ao qual será
...
@@ -275,7 +344,7 @@ git remote -v
...
@@ -275,7 +344,7 @@ git remote -v
Pare acessar localmente o branch master do projeto **Apostila-git** será
Pare acessar localmente o branch master do projeto **Apostila-git** será
usado `MeuRepo/master`.
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
Você pode acessar as informações de qualquer repositório remoto com o
comando `git remote show`, que retornará a URL e os `branches`.
comando `git remote show`, que retornará a URL e os `branches`.
...
@@ -285,7 +354,7 @@ comando `git remote show`, que retornará a URL e os `branches`.
...
@@ -285,7 +354,7 @@ comando `git remote show`, que retornará a URL e os `branches`.
git remote show origin
git remote show origin
```
```
## Renomeado Remotos ##
## Renomeado Remotos
O comando `git remote rename` pode modificar o nome de um repositório
O comando `git remote rename` pode modificar o nome de um repositório
remoto. A seguir o repositório `MeuRepo`será renomeado para
remoto. A seguir o repositório `MeuRepo`será renomeado para
...
@@ -296,7 +365,7 @@ remoto. A seguir o repositório `MeuRepo`será renomeado para
...
@@ -296,7 +365,7 @@ remoto. A seguir o repositório `MeuRepo`será renomeado para
git remote rename MeuRepo RenameRepo
git remote rename MeuRepo RenameRepo
```
```
## Removendo Remotos ##
## Removendo Remotos
Para remover remotos é utilizado o comando `git remote rm`, agora será
Para remover remotos é utilizado o comando `git remote rm`, agora será
removido o repositório renomeado anteriormente `RenameRepo`.
removido o repositório renomeado anteriormente `RenameRepo`.
...
@@ -306,13 +375,36 @@ removido o repositório renomeado anteriormente `RenameRepo`.
...
@@ -306,13 +375,36 @@ removido o repositório renomeado anteriormente `RenameRepo`.
git remote rm RenameRepo
git remote rm RenameRepo
```
```
**Protocolos Git**
## Deletar ramos no servidor
Há quatro tipos diferentes de protocolos Git (Local, Git, HTTP e SSH).
Quando houver um branch que não está sendo utilizado ou está concluído, há a opção de excluí-lo do servidor.
Se for necessário apagar branches remotos, podemos utilizar o comando a seguir:
**Exemplo:**
```{r, engine="bash", eval=FALSE}
git push origin --delete <branch>
```
## Clonar apenas um *branch*, *commit* ou *tag*.
É possível clonar apenas um branch e não o repositório Git completo. Supondo que no repositório há um branch chamado `MeuBranch` dentro do repositório `MeuRepo`, clonaremos o branch.