Skip to content

04 Hands On (GitHub)

Fábio Gaspar edited this page Nov 14, 2018 · 2 revisions

Repositórios remotos

Assim que temos um repositório local de alguma forma associado a um repositório remoto, basicamente faz-se o trabalho localmente como até agora foi visto. Fazer modificações, fazer commits, criar branches, etc, tudo isso é trabalho local.

A novidade são os comandos que permitem interagir com o repositório remoto como clone, push, pull e fetch, que serão abordados sucintamente.

git clone

Este comando cria uma working directory que é copia de um repositório local ou remoto.

$git clone /path/to/repository
$git clone https://github.com/<user>/<repo name>.git

git push

Enviar as alterações de uma branch local para um branch remota com o mesmo nome (assumindo que o remote tem o nome simbólico origin).

$git push origin master

💡 Para listar todos os branches, inclusivé remotos, usar

$git branch -a

* master
  remotes/origin/master

💡 Para ver todos os remotes associados, usar

$git remote -v

origin  https://github.com/<user>/shiny-spork (fetch)
origin  https://github.com/<user>/shiny-spork (push)

git pull

Este comando faz fetch dos dados no servidor e faz merge no repositório local.

Tal como no comando push, também é necessário especificar o remote e branch.

$git pull origin someBranch

git fetch

O comando fetch transfere os dados do servidor. Mas faz apenas isso, não altera nada no repositório local. A utilidade deste comando é que podemos estar interessados em consultar o estado do repositório remoto sem que mude o local, que poderia gerar conflitos por exemplo, por isso, o fetch é totalmente seguro.

O push, na realidade, faz um fetch seguido de um merge da branche especificada.

Fork & Pull Requests

Recomendo que leiam este guiao sobre forking e pull requests.