Como faço para enviar uma ramificação Git local para a ramificação mestre no controle remoto?


468

Eu tenho um ramo chamado develop no meu repositório local e quero ter certeza de que, quando for pressionado para a origem, ele será mesclado com a origem / mestre. Atualmente, quando pressiono, é adicionado a um ramo de desenvolvimento remoto.

Como posso fazer isso?


Existe um motivo específico para você não querer mesclar localmente origine enviá-lo para o controle remoto?
bhamby

Acho que @galador significa mesclar localmente master- mas é um ponto válido. Se é estável o suficiente para o ramo principal da origem, certamente é estável o suficiente para o seu ramo principal!
Cascabel 24/03

1
@ Jeffromi Sim, gritos, erro de digitação. -_-
bhamby

2
@Jefromi imagine que você estava trabalhando em algo em seu mestre local e fez alguns commit que ainda não estão prontos para serem enviados. Então acontece que você tem uma tarefa urgente. Você cria uma filial local a partir do mestre remoto, trabalha e envia suas alterações de volta ao mestre. Talvez não seja o melhor caminho, mas foi o que aconteceu comigo e foi o que eu fiz. Funcionou perfeitamente como pretendido. Bem, eu deveria estar trabalhando em uma filial local separada, em primeiro lugar, mas é uma dor de cabeça ramificar o tempo todo e era tarde demais.
pinkeen

21
Estou empurrando um ramo de desenvolvimento para um aplicativo de teste não público no Heroku para ver como as coisas funcionam no ambiente do Heroku. Definitivamente, não quero mesclar meu código master, mas o Heroku não executará o código, a menos que esteja masterdentro do aplicativo. Essa é uma solicitação perfeitamente razoável com casos de uso legítimos!
precisa saber é o seguinte

Respostas:


813
$ git push origin develop:master

ou, mais geralmente

$ git push <remote> <local branch name>:<remote branch to push into>

25
Não faça "git push origin: mestre" que podem remover seu ramo existente o controle remoto
Mangirdas Skripka

48
True @MangirdasSkripka! Basta usar git push origin head:masterse você não quer especificar o nome do ramo atual :)
Francesc Rosas

23
Boa idéia @ FrancescRosàs, é HEAD (letras maiúsculas).
Smokku 6/08/15

@Mipadi se eu tiver permissão mender, eu posso mover este
Neeraj Sharma

11
@NeerajSharma: Não sei o que é a permissão para consertar ou o que você deseja mover.
Mipadi 18/05/19

194

Como as pessoas mencionadas nos comentários, você provavelmente não quer fazer isso ... A resposta do mipadi é absolutamente correta se você souber o que está fazendo.

Eu diria:

git checkout master
git pull               # to update the state to the latest remote master state
git merge develop      # to bring changes to local master from your develop branch
git push origin master # push current HEAD to remote master branch

 


23
Só para citar, há algum sentido em seu pedido, eu estou usando esse caso para implantar (push) o meu desenvolvimento de dominar Heroku
Fabiano Soriani

5
Novamente, essa técnica é IMHO apenas para usuários avançados do git. Não que seja muito difícil, apenas exige que as pessoas entendam o que estão fazendo e por que funciona da maneira que funciona. Todo mundo é livre para usar o git ao seu gosto, mas acho que seguir a abordagem sugerida é muito melhor para fins educacionais, especialmente para os novatos no git. "Ramificações de tópicos" limpas é o caminho para começar. Você pode otimizar seu fluxo de trabalho posteriormente, se necessário.
Eugene Sajine

1
Na verdade, é uma coisa bastante comum de se fazer. A ramificação principal geralmente é sua ramificação de implantação. Se duas equipes divergirem intencionalmente sua implantação, é provável que você use uma filial local escolhida pela cereja para enviar correções a montante. Agora você pode argumentar que as alterações devem ser enviadas para um ramo e depois mescladas a partir daí no mestre, mas certamente não é tão estranho fazê-lo da outra maneira, IMO.
Dgatwood 31/07/2013

+1 Esta é a maneira mais lógica de "construir" uma liberação de produção.
26713 Ryan

Como você faria isso se não quiser se fundir com o desenvolvimento, mas se desenvolver rebased para dominar?
user239558

-1

Como extensão à resposta do @ Eugene, outra versão que funcionará para enviar códigos do repositório local para dominar / desenvolver o ramo.

Alterne para a ramificação 'master':

$ git checkout master

Mesclar do repositório local para o master:

$ git merge --no-ff FEATURE/<branch_Name>

Pressione para dominar:

$ git push

-1

Siga as etapas abaixo para enviar o repositório local para a filial principalenter code here

Status de $ git

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.