Opções para obter alterações
Esses comandos são muito úteis quando você interage com um repositório remoto. clone
e fetch
baixam o código remoto de uma URL remota de um repositório para o computador local, merge
é usado para mesclar o trabalho de diferentes pessoas com o seu e pull
é uma combinação de fetch
e merge
.
Clonar um repositório
Para obter uma cópia completa do repositório de outro usuário, use git clone
desta forma:
$ git clone https://hostname/USERNAME/REPOSITORY.git
# Clones a repository to your computer
Você pode escolher entre várias URLs diferentes ao clonar um repositório. Quando estiver conectado em GitHub, esses URLs estarão disponíveis abaixo dos detalhes do repositório:
Quando você executa git clone
, as seguintes ações ocorrem:
- Uma pasta
repo
é criada - Ele é inicializado como um repositório Git
- Um repositório remoto chamado
origin
é criado, apontando para a URL da qual você fez o clone - Todos os arquivos e commits do repositório são baixados ali
- O branch-padrão foi desmarcado
Para cada branch foo
no repositório remoto, um branch refs/remotes/origin/foo
de acompanhamento remoto correspondente é criado no repositório local. Normalmente, você pode abreviar esses nomes de branches de acompanhamento remoto para origin/foo
.
Fazer fetch de um repositório remote
Use git fetch
para recuperar o novo trabalho feito por outras pessoas. A busca em um repositório captura todos os novos branches e as tags de acompanhamento remoto sem mesclar essas alterações em seus branches.
Se você já tiver um repositório local com uma URL remota configurada para o projeto desejado, poderá capturar todas as novas informações usando git fetch *remotename*
no terminal:
$ git fetch remotename
# Fetches updates made to a remote repository
Caso contrário, você sempre pode adicionar um novo remoto e, em seguida, procurar. Para obter mais informações, confira "Como gerenciar repositórios remotos".
Fazer merge de alterações em seu branch local
O merge combina suas alterações locais com as alterações feitas por outras pessoas.
Geralmente, você faria um merge de um branch de acompanhamento remoto (por exemplo, um branch com fetch de um repositório remote) com seu branch local:
$ git merge remotename/branchname
# Merges updates made online with your local work
Fazer pull de alterações de um repositório remote
git pull
é um atalho conveniente para realizar git fetch
e git merge
no mesmo comando:
$ git pull remotename branchname
# Grabs online updates and merges them with your local work
Como pull
executa uma mesclagem nas alterações recuperadas, você deve garantir o commit do trabalho local antes de executar o comando pull
. Se você encontrar um conflito de mesclagem que não pode resolver ou se decidir sair da mesclagem, use git merge --abort
para levar o branch de volta para o local em que estava antes do pull.