3 Git funciona localmente. Commits, branches, logs estão gravados no
4 repositório local. Para colaborar com outros projetos, precisamos
5 publicar e ter acesso a repositórios públicos.
7 É possível publicar através de vários protocolos. Além de um diretório
8 local, uma das formas mais simples é utilizar SSH, já que independe de
9 outra configuração e permite escrita. HTTP é uma boa opção somente
10 leitura para repositórios públicos, já que não exige credenciais para
11 acesso. A outra opção é o protocolo próprio do Git, através do git
14 ## Clonando Repositórios
16 Para criar um novo repositório a partir de um repositório publicado,
17 usamos o comando git clone.
19 ~/$ git clone /home/user2/project
20 Cloning into 'project'...
27 Quando um repositório é clonado, temos uma cópia local das referências
28 deste repositório. O repositório é registrado com um nome, sendo origin
29 o nome padrão, e as referências a seus branches são prefixadas com este
30 nome e uma barra. Para visualizar estes branches remotos, utilizamos a
31 opção -r do comando git branch.
33 ~/project$ git branch -r
34 origin/HEAD -> origin/master
38 Note que o HEAD do repositório remoto aponta para o branch remoto
39 chamado master. O HEAD remoto é utilizado para criar um novo branch
40 local quando o repositório é clonado.
48 Com Git, é possível colaborar com mais de um repositório remoto. A lista
49 de repositórios rastreados, com seus nomes e URLs fica no arquivo de
50 configuração do repositório, ou seja, $REPODIR/.git/config.
52 Para manipular esta lista, o comando git remote pode ser útil. É
53 possível listar, adicionar, remover, renomear repositórios remotos.
55 Ao clonar um repositório, o remoto origin já é criado. Este é o nome
56 padrão para comandos que aceitam um remoto como parâmetro, mas permitem
57 que seja omitido, assumindo o remoto origin.
63 Para adicionar um novo remoto, usamos o subcomando add, passando um nome
64 e uma URL como parâmetros.
66 ~/project$ git remote add git://alice.example.com/project.git/
67 ~/project$ git remote show
70 ~/project$ git remote show -n alice
72 Fetch URL: git://alice.example.com/project.git/
73 Push URL: git://alice.example.com/project.git/
74 HEAD branch: (not queried)
75 Local ref configured for 'git push' (status not queried):
76 (matching) pushes to (matching)
79 Ao adicionar um novo repositório remoto, apenas acrescentamos este
80 repositório ao nosso arquivo de configuração. Não fazemos nenhum
81 download dos seus branches e commits remotos. A opção -n do subcomando
82 show evita buscar dados remotamente, que utilizaria a rede.
84 Note que temos duas URLs, uma para fetch e outra para push, que veremos
85 logo a seguir o que significam. Também temos o branch para qual o HEAD
86 do remoto aponta. Neste caso, como o repositório não foi acessado, não
87 temos esta informação. E a configuração para o push, que veremos logo a
88 seguir, fará atualização de branches que se casem.
90 Para remover um repositório remoto, utilizamos o subcomando rm, e pare
91 renomear, o subcomando rename.
93 ~/project$ git remote rename alice aliceS
94 ~/project$ git remote show
97 ~/project$ git remote rm aliceS
100 ## Fazendo atualizações
102 ## Publicando um repositório