Sobre branches remotos.
[cursogit.git] / Colaborando_com_Git.mdwn
index cb498cd..f9f96c8 100644 (file)
@@ -99,4 +99,58 @@ renomear, o subcomando rename.
 
 ## Fazendo atualizações
 
+Após adicionar um remoto, queremos fazer o download dos branches e
+commits remotos. Um dos comandos que pode ser utilizado é git fetch.
+
+       ~/project$ git fetch alice
+       From git://alice.example.com/project.git/
+        * [new branch]      master     -> alice/master
+        * [new branch]      shell      -> alice/shell
+       ~/project$ git branch -r
+         alice/master
+         alice/shell
+         origin/HEAD -> origin/master
+         origin/devel
+         origin/master
+       ~/project$ 
+
+Note que ao realizar o fetch, diferente do clone, não é criada uma
+referência ao HEAD do repositório remoto. Tampouco, é criado um branch
+local, ou feito um checkout. As referências, no entanto, são escritas
+localmente, de tal forma que é possível investigar os commits dos
+branches remotos sem novo acesso à rede.
+
+Como o acesso à rede não é feito a cada comando, novas atualizações
+precisam ser feitas quando o repositório remoto é atualizado e deseja-se
+investigar novos branches ou novos commits. Além de git fetch, pode ser
+utilizado git remote update.
+
+       ~/project$ git remote update
+       Fetching origin
+       Fetching alice
+       From /home/cascardo/git/ff/project
+        * [new branch]      devel      -> alice/devel
+       ~/project$ 
+
+Veja que um novo branch foi atualizado.
+
+## Branches remotos
+
+Agora que temos uma lista de branches remotos, podemos manipulá-los como
+branches locais, usando git log, git diff, entre outros comandos.
+Podemos fazer um checkout de um branch remoto, criando um branch local.
+
+       ~/project$ git checkout -b shell alice/shell
+       Branch shell set up to track remote branch shell from alice.
+       Switched to a new branch 'shell'
+       ~/project$ git branch -vv
+         master 033d4b8 [origin/master] Acrescenta lista de arquivos a serem ignorados.
+       * shell  a5cb5bb [alice/shell] Implementação de hello em shell script.
+       ~/project$ 
+
+A opção -vv de git branch mostra o commit ID, o sumário do commit, e o
+branch remoto que é rastreado pelo branch local. O rastreamento de um
+branch local é importante para comandos como git push e git pull, que
+veremos logo mais.
+
 ## Publicando um repositório