Mesmo depois de ler esta pergunta: git-push-current-branch , ainda estou tendo dificuldade em descobrir como devo escrever meu comando git push. Conforme mencionado no link da pergunta, não está claro na documentação.
Eu gostaria de usar meu exemplo do 'mundo real'. A seguir está o que vejo quando executo um git status
comando no nível superior do meu branch:
No branch amd_qlp_tester
Seu branch está à frente de 'origin / amd_qlp_tester' por 5 commits.
etc ...
Então, meu nome de branch é, amd_qlp_tester
mas foi "ramificado" do branch principal (se eu entendi os termos errados, é por causa da minha formação SVN). Mas então há também o nome `origin / amd_qlp_testser '
Então, como formular meu comando push?
É algum dos seguintes:
git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push
fonte
origin amd_qlp_testser
e nãoorigin/amd_qlp_tester
origin
). O (s) branch (s) para enviar os padrões (nas versões atuais do git) para:
se não estiverem definidos, o que significamatching
, mas isso deve mudar no futuro.git push
ela tenta empurrar todos os branches rastreados, ao contrário do que você disse ("o remoto do branch atual é o valor padrão").simple
estratégia de push, o que significa que irá enviar apenas o branch atual. blogs.atlassian.com/2014/06/happened-git-2-0-full-goodiesfatal: Couldn't find remote ref branch-name-here
Se sua filial local e sua filial remota tiverem o mesmo nome, você pode simplesmente fazer:
Quando o nome do seu branch local e remoto for diferente, você pode simplesmente fazer:
fonte
As respostas em questão às quais você vinculou são sobre como configurar o git para que você possa inserir
git push
comandos muito curtos e fazer com que eles façam o que quiser. O que é ótimo, se você sabe o que quer e como soletrar no Git-Ese, mas é novo no git! :-)No seu caso, a resposta de Petr Mensik é (bem, "a") certa. Aqui está o porquê:
O comando remonta ao seu arquivo para localizar o nome "remoto" (por exemplo, ). O arquivo de configuração lista:
git push remote
.git/config
origin
ssh://hostname/path
git fetch remote
Quando você clonou o repo pela primeira vez - seja quando for - git configurou os valores padrão para alguns deles. O URL é o que você clonou e o resto, se definido ou não, são todos os padrões "razoáveis" ... ou, hmm, são eles?
O problema com eles é que as pessoas mudaram de ideia, com o tempo, sobre o que é "razoável". Portanto, agora (dependendo da sua versão do git e se você configurou as coisas em detalhes), o git pode imprimir muitos avisos sobre mudanças nos padrões no futuro. Adicionando o nome do "branch a ser empurrado" -
amd_qlp_tester
- (1) o fecha, e (2) empurra apenas aquele branch.Se você quiser fazer push de maneira mais conveniente, pode fazer isso com:
ou mesmo:
mas se isso faz o que você deseja, depende se você concorda com os "primeiros autores do git" que os padrões originais são razoáveis ou com os "autores posteriores do git" que os padrões originais não são razoáveis. Então, quando você quiser fazer todas as coisas de configuração (eventualmente), veja a pergunta (e respostas) que você vinculou.
Quanto ao nome
origin/amd_qlp_tester
em primeiro lugar: na verdade, é uma entidade local (um nome mantido dentro de seu repo), embora seja chamado de "branch remoto". É o melhor palpite do git em "ondeamd_qlp_tester
fica lá". Git o atualiza quando pode .fonte
git push origin amd_qlp_tester
até precisar fazer coisas mais avançadas :)Gostaria de adicionar uma resposta atualizada - agora que uso o git há algum tempo, acho que frequentemente uso os seguintes comandos para fazer push (usando a pergunta original como exemplo):
git push origin amd_qlp_tester
- empurre para o ramo localizado no remoto chamadoorigin
no ramo remoto chamadoamd_qlp_tester
.git push -u origin amd_qlp_tester
- igual ao último, mas configura o upstream vinculando o branch local ao branch remoto para que da próxima vez você possa usar apenasgit push/pull
se ainda não estiver vinculado (só precisa fazer isso uma vez).git push
- Depois de definir o upstream, você pode usar esta versão mais curta.A
-u
opção de nota é a versão resumida de--set-upstream
- eles são os mesmos.fonte