Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.45.1 → 2.47.1 no changes
- 2.45.0 04/29/24
- 2.37.1 → 2.44.2 no changes
- 2.37.0 06/27/22
- 2.36.1 → 2.36.6 no changes
- 2.36.0 04/18/22
- 2.35.1 → 2.35.8 no changes
- 2.35.0 01/24/22
- 2.30.1 → 2.34.8 no changes
- 2.30.0 12/27/20
- 2.29.1 → 2.29.3 no changes
- 2.29.0 10/19/20
- 2.23.1 → 2.28.1 no changes
- 2.23.0 08/16/19
- 2.18.1 → 2.22.5 no changes
- 2.18.0 06/21/18
- 2.17.1 → 2.17.6 no changes
- 2.17.0 04/02/18
- 2.10.5 → 2.16.6 no changes
- 2.9.5 07/30/17
- 2.8.6 no changes
- 2.7.6 07/30/17
- 2.6.7 05/05/17
- 2.4.12 → 2.5.6 no changes
- 2.3.10 09/28/15
- 2.1.4 → 2.2.3 no changes
- 2.0.5 12/17/14
RESUMO
git remote [-v | --verbose] git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL> git remote rename [--[no-]progress] <antigo> <novo> git remote remove <nome> git remote set-head <nome> (-a | --auto | -d | --delete | <ramo>) git remote set-branches [--add] <nome> <ramo>… git remote get-url [--push] [--all] <nome> git remote set-url [--push] <nome> <newurl> [<oldurl>] git remote set-url --add [--push] <nome> <newurl> git remote set-url --delete [--push] <nome> <URL> git remote [-v | --verbose] show [-n] <nome>… git remote prune [-n | --dry-run] <nome>… git remote [-v | --verbose] update [-p | --prune] [(<grupo> | <remoto>)…]
COMANDOS
Sem argumentos, mostra uma lista de controles remotos existentes. Vários subcomandos estão disponíveis para realizar operações nos servidores remotos.
- add
-
Adicione um servidor remoto chamado <nome> para o repositório na <URL>. O comando
git fetch <nome>
pode então ser usado para criar e para atualizar as ramificações rastreadas remotamente <nome>/<ramo>.Com a opção
-f
, o comandogit fetch <nome>
é executado imediatamente a informação remota seja configurada.Com a opção
--tags
, ogit fetch <nome>
importa cada tag do repositório remoto.Com a opção
--no-tags
, ogit fetch <nome>
não importa as tags do repositório remoto.É predefinido que apenas as tags recolhidas dos ramos são importadas (consulte git-fetch[1]).
Com a opção
-t <ramo>
, em vez da bolha refspec predefinida para o servidor remoto de todas as ramificações no namespacerefs/remotes/<nome>/
, é criado um refspec para controlar apenas o<ramo>
. Você pode fornecer mais de um-t <ramo>
para rastrear várias ramificações sem obter todas elas.Com a opção
-m <master>
, uma "ref" simbólicarefs/remotes/<nome>/HEAD
é configurado para apontar para o ramo<master>
do ramo remoto. Veja também o comandoset-head
.Quando um espelho de busca é criado com a opção
--mirror=fetch
, as refs não serão armazenados no espaço de nomes refs/remotes/, porém tudo nas refs/ no ramo remoto será espelhado diretamente na refs/ em o repositório local. Esta opção faz sentido apenas nos repositórios vazios, porque uma busca substituirá quaisquer commits locais.Quando um espelho "push" é criado com a opção
--mirror=push
, então o comandogit push
sempre se comportará como se o--mirror
fosse utilizado. - rename
-
Renomeie o ramo remoto chamado
<old>
para<novo>
. Todos os ramos monitorados remotamente e as suas definições de configuração para o ramo remoto são atualizados.Caso <antigo> e <novo> sejam iguais, e <old> seja um arquivo existente no
$GIT_DIR/remotes
ou$GIT_DIR/branches
, o ramo remoto será convertido para o formato do arquivo de configuração. - remove
- rm
-
Remova o ramo remoto chamado
<nome>
. Todos os ramos monitorados remotamente e as suas definições de configuração para o ramo remoto são atualizados. - set-head
-
Define ou exclui o ramo predefinido (ou seja, o destino da ref simbólica
refs/remotes/<nome>/HEAD
) do ramo remoto informado. Não é necessário ter um ramo remoto predefinido para o ramo remoto, porém permite que o nome do ramo remoto seja utilizado no lugar de um ramo específico. Como por exemplo, caso o ramo predefinido paraorigin
estiver definido comomaster
, entãoorigin
poderá ser definido onde quer que você normalmente definiriaorigin/master
.Com
-d
ou--delete
, a referência simbólicarefs/remotes/<nome>/HEAD
é excluída.Com
-a
ou--auto
, o ramo remoto é consultado para determinar o seuHEAD
, então a referência simbólicarefs/remotes/<nome>/HEAD
é definida no mesmo ramo. Como por exemplo, caso oHEAD
remoto aponte paranext
, o comandogit remote set-head origin -a
definirá a referência remotarefs/remotes/origin/HEAD
pararefs/remotes/origin/next
. Isso só funcionará caso orefs/remotes/origin/next
já existir; caso contrário, deve ser buscado (fetched) primeiro.Utilize o
<ramo>
para definir explicitamente a referência simbólicarefs/remotes/<nome>/HEAD
. Como por exemplo, o comandogit remote set-head origin master
definirá a referência remotarefs/remotes/origin/HEAD
pararefs/remotes/origin/master
. Isso só funcionará caso orefs/remotes/origin/master
já existir; caso contrário, deve ser buscado (fetched) primeiro. - set-branches
-
Altera a lista das ramificações rastreadas pelo servidor remoto informado. Isso pode ser usado para rastrear um subconjunto das ramificações remotas disponíveis após a configuração inicial de um servidor remoto.
Os ramos informados serão interpretados como se fossem definidos com a opção
-t
na linha de comandogit remote add
.Com
--add
, em vez de substituir a lista das ramificações monitoradas no momento, será adicionada a lista. - get-url
-
Recupera as URLs para um ramo remoto. As configurações para o
ratherOf
epushInsteadOf
são expandidas aqui. É predefinido que, apenas a primeira URL é listada.Com o
--push
, as URLs push são apenas consultadas em vez de buscar as URLs.Com
--all
, todas as URLs para o ramo remoto serão listadas. - set-url
-
Altera as URLs para o ramo remoto. Define a primeira URL para o <nome> remoto que coincida com à regex <oldurl> (primeira URL caso nenhuma <oldurl> seja informada) como <newurl>. Caso <oldurl> não coincida com nenhuma URL, ocorrerá um erro e nada será alterado.
Com o
--push
, as URLs push são manipuladas em vez de buscar as URLs.Com
--add
, em vez de alterar as URLs existentes, uma nova URL é adicionada.Com a opção
--delete
, em vez de alterar as URLs já existentes, todas as URLs que correspondem ao regex <URL> são excluídas para o <nome> remoto. É um erro a tentativa de excluir todos os URLs que não sejam dopush
.Observe que a URL de envio e a URL de busca, mesmo que possam ser definidos de maneiras diferente, ainda devem se referir ao mesmo local. O que você enviou para a URL de envio deve ser o que você veria se obtivesse imediatamente a partir da URL obtida. Se estiver tentando obter de um lugar (do seu "upstream" por exemplo) e enviar para outro (o seu repositório de publicação por exemplo), use dois servidores remotos separados.
- show
-
Fornece algumas informações sobre o ramo remoto <nome>.
Com a opção
-n
, os cabeçalhos remotos não são consultadas primeiro com o comandogit ls-remote <nome>
; em vez disso são utilizadas as informações em cache. - prune
-
Exclui as referências antigas associadas com <nome>. É predefinido que as ramificações antigas monitoradas remotamente sob <nome> são excluídas, porém, dependendo da configuração global e da configuração do ramo remoto, podemos até remover as tags locais que não foram enviadas para lá. É o equivalente ao comando
git fetch --prune <nome>
, exceto que nenhuma nova referência será buscada.Veja a seção PRUNING do git-fetch[1] para saber o que será removido dependendo das várias configurações.
Com a opção
--dry-run
, relate quais os ramos poderão ser eliminados, mas na verdade não os eliminem. - update
-
Traga as atualizações para os servidores remotos ou os grupos remotos no repositório, conforme for definido por
remotes.<grupo>
. Se nem o grupo nem o servidor remoto forem especificados na linha de comando, o parâmetro de configuraçãoremotes.default
será utilizado; seremotes.default
não for definido, todos os servidores remotos que não tiverem o parâmetro de configuraçãoremote.<nome>.skipDefaultUpdate
definido comotrue
serão atualizados. (consulte git-config[1]).Com a opção
--prune
, execute a poda em todos os ramos remotos que estão atualizados.
DISCUSSÃO
A configuração remota é obtida usando as variáveis de configuração remote.origin.url
e remote.origin.fetch
. (consulte git-config[1]).
CONDIÇÃO DE ENCERRAMENTO
Em casos bem sucedidos o estatus de saída é 0
.
Quando subcomandos como add, rename, e remove não conseguem encontrar o ramo remoto em questão, o status encerra com 2
. Quando o ramo remoto já existir, encerra com 3
.
Com qualquer outro erro, o estado da saída pode ser qualquer outro valor diferente de zero.
EXEMPLOS
-
Adicione um novo ramo remoto, busque e averigue um ramo dele
$ git remote origin $ git branch -r origin/HEAD -> origin/master origin/master $ git remote add staging git://git.kernel.org/.../gregkh/staging.git $ git remote origin staging $ git fetch staging ... Do git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging * [new branch] master -> staging/master * [new branch] staging-linus -> staging/staging-linus * [new branch] staging-next -> staging/staging-next $ git branch -r origin/HEAD -> origin/master origin/master staging/master staging/staging-linus staging/staging-next $ git switch -c staging staging/master ...
-
Imite o comando
git clone
, porém monitore apenas os ramos selecionados$ mkdir project.git $ cd project.git $ git init $ git remote add -f -t master -m master origin git://example.com/git.git/ $ git merge origin
GIT
Parte do conjunto git[1]