Uzaktan kumandadaki bir ana dalda yerel bir Git dalını nasıl itebilirim?


468

Yerel depomda gelişme adlı bir şubem var ve kökeni itmek için bastığımda kökeni / ustası ile birleştiğinden emin olmak istiyorum. Şu anda, ittiğim zaman uzaktan geliştirme dalına ekleniyor.

Bunu nasıl yapabilirim?


Yerel olarak birleştirmek originve sonra uzaktan kumandaya itmek istememenizin belirli bir nedeni var mı ?
bhamby

Bence @galador yerel olarak birleşmek demek master- ama geçerli bir nokta. Menşeinin ana dalı için yeterince kararlıysa, kesinlikle ana dalınız için yeterince kararlı!
Cascabel

1
@Jefromi Evet, boş ver, yazım hatası. -_-
bhamby

2
@Jefromi, yerel ustanızda bir şey üzerinde çalıştığınızı ve henüz itmeye hazır olmayan bazı taahhütler yaptığınızı hayal edin. Sonra acil göreviniz olduğu ortaya çıkıyor. Uzak ana sistemden yerel bir şube oluşturursunuz, çalışır ve değişikliklerinizi ana sisteme geri gönderirsiniz. Belki de en iyi yol bu değil ama başıma gelen bu ve yaptığım da bu. İstendiği gibi kusursuz çalıştı. İlk etapta ayrı bir yerel şubede çalışmalıydım, ama her zaman dallanmak için kıçta acı var ve çok geçti.
pinkeen

21
İşlerin Heroku ortamında nasıl çalıştığını görmek için bir geliştirme dalını Heroku'da halka açık olmayan bir test uygulamasına itiyorum. Kesinlikle kodumu birleştirmek istemiyorum master, ancak masteruygulama içinde olmadıkça Heroku kodu çalıştırmaz . Bu, meşru kullanım durumlarıyla ilgili oldukça makul bir taleptir!
JacobEvelyn

Yanıtlar:


814
$ git push origin develop:master

veya daha genel olarak

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

25
"Git push origin: master" yapmayın, mevcut şubenizi o uzaktan kumandadan kaldırabilir
Mangirdas Skripka

48
True @MangirdasSkripka! Sadece git push origin head:mastermevcut dalın adını belirtmek istemiyorsanız kullanın :)
Francesc Rosas

23
İyi Fikir @ FrancescRosàs, HEAD (büyük harfler) olsa.
smokku

@Mipadi Eğer mender iznim varsa, bunu taşıyabilir miyim
Neeraj Sharma

11
@NeerajSharma: Gönderen izninin ne olduğunu veya ne taşımak istediğinizi bilmiyorum.
mipadi

194

Yorumlarda belirtildiği gibi, muhtemelen bunu yapmak istemezsiniz ... Ne yaptığınızı biliyorsanız, mipadi'nin cevabı kesinlikle doğrudur.

Şöyle söylerdim:

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
Sadece bahsetmek gerekirse, isteğinde bir anlam var, bu davayı gelişimimi Heroku ustasına dağıtmak için kullanıyorum
Fabiano Soriani

5
Yine, bu teknik sadece ileri git kullanıcıları için IMHO'dur. Çok zor olduğu için değil, insanların ne yaptığını ve neden çalıştığını neden anlamalarını gerektirir. Herkes git zevkini kullanmakta özgürdür, ancak önerdiğim yaklaşımı izleyerek eğitim amaçlı, özellikle git yeni gelenler için çok daha iyi olduğunu düşünüyorum. Temiz "konu dalları" başlamanın yoludur, gerekirse iş akışınızı daha sonra optimize edebilirsiniz.
Eugene Sajine

1
Aslında bu oldukça yaygın bir şey. Ana dal genellikle dağıtım dalınızdır. İki ekip kasıtlı olarak dağıtımlarını birbirinden ayırırsa, yamaları yukarı doğru itmek için kirazla seçilmiş bir yerel şube kullanma şansınız vardır. Şimdi, değişikliklerin bir şubeye yukarı doğru itilmesi ve daha sonra oradan ustaya birleştirilmesi gerektiğini iddia edebilirsiniz, ancak bunu başka bir şekilde yapmak o kadar da garip değil, IMO.
dgatwood

+1 Bu, bir üretim sürümü "oluşturmanın" en mantıklı yoludur.
Ryan

Eğer gelişmekle birleşmek istemezseniz, ancak ustalaşmak için yeniden geliştirdiyseniz bunu nasıl yapardınız?
user239558

-1

@ Eugene yanıtına bir uzantısı olarak yerel repo kod master / geliştirmek için kod itmek için çalışacak başka bir sürümü.

'Master' şubesine geç:

$ git checkout master

Yerel repodan master'a birleştir:

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

Master'a bas:

$ git push

-1

Yerel repoyu Ana şubeye itmek için aşağıdaki adımları izleyinenter code here

$ git durumu

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.