Empurrando uma filial local para o GitHub

117

Eu configurei o Git para que, quando eu executar git push, ele envie as alterações para meu repositório GitHub. Até agora, só tive um ramo mestre.

No entanto, agora criei uma filial local e me comprometi com ela usando:

git checkout -b my_new_branch
git commit

O que eu gostaria de fazer agora é enviar minhas alterações neste branch para o GitHub. Eu apenas faço um push git?

Quando o configurei pela primeira vez, executei:

git config push.default current
Noam
fonte
Qual é a tua pergunta exatamente? Com push.defaultdefinido dessa forma, sim, git pushirá enviar o branch atual para a origem, que é o seu repositório github, supondo que você clonou a partir daí. (Você pode especificar um controle remoto diferente com, branch.my_new_branch.remotese desejar.) Então, você tentou fazer isso e não funcionou?
Cascabel de
1
Se você deseja que todos os seus branches locais sejam
enviados

Respostas:

221

Eu acredito que você está procurando git push origin my_new_branch, supondo que seu controle remoto de origem esteja configurado para acessar seu repositório github.

Tom
fonte
git push <remote> <branch> de acordo com atlassian.com/git/tutorials/syncing/git-push
vikramvi
3
Se você quiser trabalhar neste branch com outras pessoas e, portanto, fazer git pull, você desejará definir as informações de rastreamento para seu novo branch: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia
9

Dependendo das configurações locais do git, se você tiver verificado um branch que não é aquele que você clonou ou que existe onde você está tentando enviar, o git não executará o push do seu branch local.

Esta é a mensagem que ele fornece:

aviso: push.default não está definido; seu valor implícito mudou no Git 2.0 de 'correspondência' para 'simples'. Para silenciar esta mensagem e manter o comportamento tradicional, use:

git config - correspondência global push.default

Para silenciar esta mensagem e adotar o novo comportamento agora, use:

git config --global push.default simple

Quando push.default é definido como 'matching', git irá enviar branches locais para branches remotos que já existem com o mesmo nome.

Desde o Git 2.0, o Git padroniza para o comportamento mais conservador 'simples', que apenas envia o branch atual para o branch remoto correspondente que 'git pull' usa para atualizar o branch atual.

Veja 'git help config' e pesquise 'push.default' para mais informações. (o modo 'simples' foi introduzido no Git 1.7.11. Use o modo semelhante 'atual' em vez de 'simples' se você às vezes usa versões mais antigas do Git)

fatal: o branch atual MyLocalBranchnão tem branch upstream. Para enviar o branch atual e definir o remoto como upstream, use

git push --set-upstream origin MyLocalBranch
xaxxon
fonte
0

Se você for realmente preguiçoso, pode empurrar todos os branches locais simplesmente usando

git push --all

--tudo

Empurre todos os ramos (ou seja, refs abaixo refs/heads/); não pode ser usado com outro <refspec>.

serv-inc
fonte
-12

Se você configurou seu git para enviar para seu repositório mestre GitHub, não importa em qual branch você esteja, ele irá enviar por push para seu repo mestre GitHub.

Tenha em mente que, se muitos desenvolvedores estiverem trabalhando no mesmo repositório, você pode ter um conflito.

GiaNU
fonte
Eu executei git config push.default current
Noam de