Git
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-send-pack last updated in 2.44.0

NOME

git-send-pack - Impulsiona (push) os objetos através do protocolo Git para um outro repositório

RESUMO

git send-pack [--all] [--dry-run] [--force] [--receive-pack=<git-receive-pack>]
		[--verbose] [--thin] [--atomic]
		[--[no-]signed|--signed=(true|false|if-asked)]
		[<host>:]<diretório> [<ref>…​]

DESCRIÇÃO

No lugar utilize git push que é um wrapper de maior hierarquia deste comando. Consulte git-push[1].

Invoca o comando git-receive-pack em um repositório possivelmente remoto e atualiza-o a partir do repositório atual, enviando determinados refs.

OPÇÕES

--receive-pack=<git-recebe-pacote>

O caminho para o programa git-receive-pack na extremidade remota. Às vezes é útil ao enviar para um repositório remoto através do ssh e você não possui o programa no diretório no $PATH predefinido.

--exec=<git-recebe-pacote>

O mesmo que --receive-pack=<git-receive-pack>.

--all

Em vez de definir de forma explicita quais são referências que devem ser atualizadas, atualize todos os cabeçalhos que existam localmente.

--stdin

Pegue a lista dos refs do stdin, um por linha. Caso haja refs utilizados na linha de comando, além desta opção, os refs do stdin serão processados após as da linha de comando.

Caso --stateless-rpc seja utilizado junto com esta opção, a lista de referências deverá estar no formato do pacote (linha-pkt). Cada ref deve estar em um pacote separado e a lista deve terminar com um pacote liberado.

--dry-run

Faça tudo, exceto realmente enviar as atualizações.

--force

Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it. Esta flag desativa esta verificação. What this means is that the remote repository can lose commits; use it with care.

--verbose

Rode de forma loquaz.

--thin

Envie um pacote "thin", que registra os objetos no formato "deltificado" com base nos objetos não inclusos no pacote para reduzir o tráfego de rede.

--atomic

Use uma transação atômica para atualizar as refs. Caso alguma das refs falhem na atualização, todo o "push" falhará sem alterar nenhuma das refs.

--[no-]signed
--signed=(true|false|if-asked)

O GPG assina a solicitação impulsionamento para atualizar os refs no lado do recebimento permitindo que ele seja verificado pelos ganchos ou seja catalogado nos registros. Caso as opções false ou --no-signed sejam utilizadas, nenhuma tentativa de assinatura será feita. Caso as opções true ou --signed sejam utilizadas, o impulsionamento irá falhará caso o servidor não seja compatível com impulsionamentos assinados. Caso seja definido com if-asked, a assinatura só será realizada caso o servidor seja compatível com impulsionamentos assinados. O impulsionamento falhará caso a chamada atual para o comando gpg --sign falhe. Para obter detalhes sobre o recebimento na parte final, consulte git-receive-pack[1].

--push-option=<texto>

Encaminha uma cadeia de caracteres específicos para uma opção push que será utilizada por ganchos no lado do servidor. Caso o servidor não seja compatível com as opções push, exibe erro. Para mais detalhes consulte git-push[1] e githooks[5].

<host>

Um host remoto para hospedar o repositório. Quando esta parte for definida, o comando git-receive-pack é chamado através do ssh.

<diretório>

O repositório que será atualizado.

<ref>…​

O ramo remoto refs que serão atualizados.

ESPECIFICANDO AS REFS

Existem três maneiras para definir quais as refs devem ser atualizadas na extremidade remota.

Com a opção --all, todos as refs existentes localmente são transferidos para o lado remoto. Você não pode definir qualquer <ref> caso você utilize está opção.

Sem --all e sem qualquer <ref>, os cabeçalhos existentes no lado local e no lado remoto são atualizadas.

Quando uma ou mais <ref> sejam definidas de forma explicita (seja através da linha do comando ou através da opção --stdin), pode ser um único padrão ou o par deles separados por dois pontos ":" (significa que o nome da "ref" não pode ter dois pontos). Um único padrão <nome> é apenas uma abreviação para <nome>:<nome>.

Cada par de padrões consiste no lado da origem (antes dos dois pontos) e no lado do destino (depois dos dois pontos). O ref a ser feito o push é determinado localizando uma coincidência que corresponda com a origem e a localização da origem é determinada usando o lado de destino. As regras utilizadas para coincidir com um ref são os mesmos utilizados por git rev-parse para resolver um nome ref simbólico. Consulte git-rev-parse[1].

  • É um erro caso <src> não corresponda exatamente a um dos refs locais.

  • É um erro caso <dst> coincida com mais de uma refs remota.

  • Caso <dst> não corresponda a nenhum ref remoto

    • é preciso iniciar com "refs/"; o <dst> é utilizado literalmente como destino neste caso.

    • <src> == <dst> e a referência que coincida com <src> não devem existir no conjunto de refs remotas; o "ref" que coincida com o <src> localmente é utilizado como o nome do destino.

Sem --force, a fonte do <src> "ref" é armazenado no ramo remoto apenas caso o destino <dst> não exista ou o destino <dst> seja um subconjunto apropriado (ou seja, um ancestral) da origem <src>. Esta verificação, conhecida como "verificação de avanço rápido", é realizada para evitar sobrescrever acidentalmente a "ref" remota e perder os commits de outras pessoas a partir daí.

Com --force, a verificação do avanço rápido é desativado para todas as refs.

Opcionalmente, um parâmetro <ref> pode ser prefixado com um sinal de mais + para desativar a verificação de avanço rápido apenas nessa "ref".

GIT

Parte do conjunto git[1]

scroll-to-top