Existe um atalho para dizer ao Git para enviar a ramificação de rastreamento atual à origem?
Nota: Sei que posso alterar o comportamento de envio padrão , mas estou procurando uma solução ad-hoc que não mude o comportamento padrão.
Por exemplo, suponha que eu esteja no ramo feature/123-sandbox-tests
que estaria usando
git push origin feature/123-sandbox-tests
o que é tedioso. Estou procurando um atalho, algo como
git push origin current
onde o git sabe que a corrente é feature/123-sandbox-tests
.
Edit : A partir da versão 2.0, o comportamento padrão do git mudou para um comportamento mais intuitivo, que é o que eu queria alcançar. Veja esta questão para mais detalhes.
Editar 2 : a resposta do ceztko é a melhor resposta, pois permite empurrar o ramo atual, independentemente das configurações.
git push
empurrar apenas a ramificação atual, mas em outras máquinas, pode empurrar acidentalmente todas as ramificações correspondentes.co
, então se eu tentar puxar para baixo e depois verificar o código sem meu~/.gitconfig
arquivo nessa VM, eu o saberei imediatamente. Isso me deixa bem seguro ao alterar o padrão de envio paraupstream
.@
, que está documentado como um alias válido paraHEAD
. (eggit push -u origin @
)Você pode configurar o git para enviar para a ramificação atual usando o seguinte comando
então apenas faça
isso enviará o código para sua ramificação atual.
fonte
push = refs/heads/current:refs/for/master/current
a uma seção 'remota' em .git / config? Ou seja, 'atual' é uma palavra especial aqui? Ou estará procurando um ramo chamado "atual"?git push -u origin feature_branch_name
para configurar upstream / rastreamento! Se você usar um repositório remoto, pelo menos.Você deve examinar uma pergunta semelhante em Comportamento padrão de "git push" sem uma ramificação especificada
Basicamente, explica como definir o comportamento padrão para enviar sua ramificação atual apenas em execução
git push
. Provavelmente o que você precisa é:git config --global push.default current
Outras opções:
fonte
Eu uso esse alias na minha configuração .bashrc
No comando,
$gpb
ele pega o nome do ramo atual e o envia à origem.Aqui estão meus outros pseudônimos:
fonte
Para o que vale, o atalho definitivo:
No meu
.bash_profile
eu tenhoalias push="git push origin HEAD"
, portanto, sempre que digitopush
, sei que estou pressionando para o ramo atual em que estou.fonte
Se você estiver usando o git 1.7.x, poderá executar o seguinte comando para definir a ramificação de rastreamento remoto.
Então você pode simplesmente usar
git push
para enviar todas as alterações. Para uma resposta mais completa, consulte a resposta aceita para uma pergunta semelhante aqui.Se você deseja enviar apenas a ramificação atual com o comando push, é possível alterar o comportamento de envio para upstream:
fonte
git config --global push.default upstream
definirá o comportamento de envio para enviar somente o ramo atual.A maneira mais simples: corra
git push -u origin feature/123-sandbox-tests
uma vez. Isso empurra o ramo da maneira que você está acostumado a fazer e também define as informações de rastreamento upstream na sua configuração local. Depois disso, você pode simplesmentegit push
enviar as ramificações rastreadas aos seus remotos a montante.Você também pode fazer isso na configuração, definindo
branch.<branch name>.merge
o nome da filial remota (no seu caso, o mesmo que o nome local) e, opcionalmente,branch.<branch name>.remote
o nome do controle remoto para o qual você deseja enviar (o padrão é a origem). Se você procurar na sua configuração, provavelmente já existe uma dessas opçõesmaster
, para que você possa seguir esse exemplo.Por fim, certifique-se de considerar a
push.default
configuração. O padrão é "correspondência", que pode ter resultados indesejados e inesperados. A maioria das pessoas que conheço acha "upstream" mais intuitiva, o que empurra apenas o ramo atual.Detalhes sobre cada uma dessas configurações podem ser encontrados na página de manual do git-config .
Pensando bem, ao reler sua pergunta, acho que você sabe tudo isso. Eu acho que o que você está realmente procurando não existe. Que tal uma função bash algo como (não testado):
fonte
Com a ajuda da resposta de ceztko, escrevi esta pequena função auxiliar para facilitar minha vida:
Empurra a ramificação atual para a origem e também define a ramificação de rastreamento remoto, caso ainda não tenha sido configurada.
fonte