Soru Uzak Git dalını nasıl yaratıyorsunuz?


Akış yukarı 'itmek' istediğim yerel bir şube oluşturdum. Yeni oluşturulan bir uzak şubenin nasıl izleneceğine dair Yığın Taşması ile ilgili benzer bir soru var.

Ancak iş akışım biraz farklı. İlk Yerel bir şube oluşturmak istiyorum ve memnun olduğumda ve şubemi paylaşmak istediğimde onu yukarı aktaracağım.

  • Bunu nasıl yaparım? (Google aramalarım hiçbir şeyle gelmiyordu).
  • İş arkadaşlarıma, onu yukarı havza deposundan nasıl çekeceğimi nasıl anlarım?

UPDATE Git 2.0 ile daha basit bir cevap var Aşağıda yazdım: https://stackoverflow.com/a/27185855/109305


2712
2017-10-05 09:21


Menşei


kimse sana ikinci soruya cevap verdi mi? >> Ve meslektaşlarıma onu yukarı havza deposundan nasıl çekeceğini söylerim? - milkplus
Muhtemelen ilgili: Pro Git: 3.5 Git Dallanma - Uzak Dallar.
@milkplus get fetch --all uzaktaki yeni şubeleri getirir (ancak sadece get fetch --prune silinen uzak dallara yapılan referansları yerel olarak siler). Bence bu ya otomatik olarak ayarlanmalı ya da sözlü olarak konuşmalısınız. - peterh
Olası kopya Yeni bir yerel şubeyi uzak bir Git deposuna nasıl ittiririm ve nasıl izlerim? - Trevor Boyd Smith


Cevaplar:


İlk olarak, şubenizi yerel olarak oluşturursunuz:

git checkout -b <branch-name> # Create a new branch and check it out

Uzak şube, uzak sunucuya bastığınızda otomatik olarak oluşturulur. Yani bunun için hazır olduğun zaman, sadece yapabilirsin:

git push <remote-name> <branch-name> 

Nerede <remote-name> tipik olarak origin, hangi klonun klonlandığınız uzaklığa verdiği isim. İş arkadaşlarınız o kolu sadece çeker ve otomatik olarak yerel olarak oluşturulur.

Ancak, resmi olarak formatın şu olduğunu unutmayın:

git push <remote-name> <local-branch-name>:<remote-branch-name>

Ama bir tane atladığınızda, her iki dalın da aynı olduğunu varsayar. Bunu söyledikten sonra, Dikkatsadece belirleme kritik hatasını yapma :<remote-branch-name> (kolon ile) veya uzak şube silinecek!

Böylece bir sonraki git pull ne yapacağını bilecek, bunun yerine kullanmak isteyebilirsiniz:

git push --set-upstream <remote-name> <local-branch-name> 

Aşağıda açıklandığı gibi, --set-upstream seçenek bir upstream dalı kurar:

Güncel olan her şube için veya   başarılı bir şekilde itti, yukarı akış ekle   (izleme) referansı, tarafından kullanılan   argümansız git-pull (1) ve diğer   emreder.


3296
2017-10-05 09:29



Git varsayılan davranışı itmek olduğunu unutmayın. eşleştirme refs, yani git push <remote> eğer mevcut değilse dalı itmez <remote>. - Jakub Narębski
Kullanmak isteyebilirsiniz git push -u <remote-name> <branch-name> bunun yerine, bir sonraki git pull ne yapacağını bilecek. - Bart Schuller
Sunucu adını açıkça belirtmek yerine, yalnızca kullanabilirsiniz originYani "sunucu bu repodan geri kalanını aldım": git push origin <branch-name>. - jpatokal
Eğer kullanmayı unutursanız -u seçeneği, sadece yazabilirsiniz git push -u daha sonra şubede git pull çalışacak. - Jan
Hepsini bir araya koy, git push -u origin <local-branch-name> benim için ne çalıştı. - Samo


İlk olarak, şubenizi yerel olarak oluşturmanız gerekir

git checkout -b your_branch

Bundan sonra, şubeyi paylaşmaya hazır olduğunuzda şubenizde yerel olarak çalışabilirsiniz. Bir sonraki komut, şubeyi uzak depoya itiyor ve izliyor.

git push -u origin your_branch

Takım arkadaşları, aşağıdakileri yaparak şubenize ulaşabilir:

git fetch
git checkout origin/your_branch

Şube içinde çalışmaya devam edebilir ve argümanları gitmeden (veya argümansız gitme komutunu master'ı uzaktaki master'a, your_branch'ini yerel olarak uzaktaki your_branch'e, vb.) Gönderebilirsiniz.

git push

Takım arkadaşları, komisyonları yaparak şubenize basabilir ve daha sonra açıkça itebilir

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

Ya da gitme yönündeki argümanlardan kaçınmak için şubeyi izleme

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push

797
2017-07-26 01:09



Git sizin için çok karmaşık görüyorsa, Dropbox veya Google Drive, GERÇEKTEN kullanmanız tavsiye edilir, git ve hala sürümleri / etc var ... - dseminara


Basit Git 2.0+ çözümü:

İtibariyle Git 2.0 davranışı daha basit hale geldi:

Git ile yapılandırabilirsiniz push.default = current hayatı kolaylaştırmak için:

Bunu ekledim, şimdi yeni bir dalı yukarı aktarabilirim

$ git push -u

-u aynı ismin uzak dalını takip edecek. Hayır, bu yapılandırmada, git komutuna yapılan uzak referansı otomatik olarak tahmin edersiniz. itibaren git.config belgeleri:

push.default 

Refspec açık bir şekilde belirtilmediyse, gitmesi gereken aksiyonu tanımlar.

push.default = current - Bir şube ile güncelleştirmek için mevcut şube itin   Alıcıda aynı isim. Hem merkezi hem de merkezi olmayan iş akışlarında çalışır.

Benim için bu, günlük Güz iş akışımın iyi bir basitleştirilmesi. Yapılandırma ayarı, yerel olarak bir şube eklediğiniz ve uzaktan oluşturmak istediğiniz 'olağan' kullanım durumunun bakımını yapar. Ayrıca, sadece uzaktan kumanda ile uzaktan kumandadan yerel şubeler oluşturabilirim git co remote_branch_name (kullanmak yerine --set-upstream-to Bayrak).

Bu soruyu biliyorum ve kabul edilen cevaplar oldukça eski, ancak davranış değişti, böylece iş akışınızı daha basit hale getirmek için yapılandırma seçenekleri mevcut.

Genel Git yapılandırmanıza eklemek için, bunu komut satırında çalıştırın:

$ git config --global push.default current

242
2017-11-28 09:46



buldum git push -u origin HEAD cevaplandığı gibi İşte yazmak için çok fazla olmaksızın biraz daha ayrıntılı (yaptığınız şeyi yazdığınız). Ayrıca, bir git push -u Şube ile oluşturulduysa ek argümanlar olmadan benim için çalışmadı -t - Qw3ry


Önceki cevaplarda belirtildiği gibi,

git push <remote-name> <local-branch-name>:<remote-branch-name>

Yerel bir dalı zorlamak için yeterlidir.

İş arkadaşlarınız, bu komutla tüm uzak şubeleri (yeni olanlar dahil) çekebilir:

git remote update

Daha sonra, daldaki değişiklikleri yapmak için normal akış:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

65
2017-12-27 14:12





Mevcut şubeye göre yerel olarak yeni bir şube oluşturun:

git checkout -b newbranch

Normalde yaptığınız değişiklikleri yapın. Ardından, onu yukarı doğru itin:

git push -u origin HEAD

Bu, geçerli dalı aynı ada sahip bir şubeye itmek için bir kısayoldur. origin ve belirtmeniz gerekmeyecek şekilde izleyin origin HEAD gelecekte.


49
2018-02-24 14:58



Bu benim durumumda yardımcı oldu: git push -u origin HEAD. Bence en açık yol. - Scadge
Evet, en son ne yazdığınızı asla bir şube olarak hatırlamıyorsunuz, işte bu yol. - marksyzm
@marksyzm Hangi branşta olduğunuzu veya neyi adlandıracağınızı hatırlayamıyorsanız, muhtemelen hiç bastırmamalısınız! En azından koşmadan git status ilk. - Zenexer
Evet, dünyanın bu adımda patladığından emin olmamalı; Katılıyorum. - marksyzm
Bu, bir izleme dalı ve aynı zamanda uzak bir şube oluşturmanın en etkili yoludur. Ayrıca eklemek isterim git remote show origin Yeni izleme / izlenen ilişkiyi görselleştirmek için üçüncü adım olarak. - hb5fa


Aslında, yerel olana sahip olmadan yalnızca uzak şube oluşturmak istiyorsanız, bunu şu şekilde yapabilirsiniz:

git push origin HEAD:refs/heads/foo

Şube ne olursa olsun şubeye iter foo uzaktan kumandada yoktu.


32
2017-11-25 15:29



Bunu yapmak, Visual Studio'mın doğru şekilde başlatılmayacağı noktaya tamamen karıştı. Takım Gezgini hiç yüklenmedi, ancak diğer her şeyde de bonkerlar hata attı. Sadece FYI. - Josh
Bu işe yarayacak gibi geliyor, ama aslında denediğimde, bizim gitlab sunucumuz sonucu bir dal olarak tanıyamadı. - JosephH
Uzaktan kumandada hangi branşman dallanmış? Ya foo2'den ayrılmak istersek? Mümkün mü? Teşekkür ederim. - user674669


Mevcut şubeden bir şube oluşturmak istiyorsanız

git checkout -b {your_local_branch_name} 

Uzak şubeden bir şube istiyorsan, deneyebilirsin

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

Değişikliklerle bittiğinde dosyayı ekleyebilirsiniz.

git add -A or git add <each_file_names>

Sonra yerel olarak bir taahhütte bulunun

git commit -m 'your commit message'

Uzaktan repoya zorlamak istediğinizde

git push -u origin <your_local_branch_name>

Hep birlikte olacak

git checkout -b bug_fixes 

veya Uzak şubeden bir şube oluşturmak istiyorsanız gelişme 

git ödeme -b hata düzeltmeleri Menşei/gelişme

Şube ile uzak repo için itti

git push -u origin **bug_fixes**

Şubenizi diğer şubelerden güncellemek istediğiniz her zaman ana.

git pull origin master.


23
2018-05-01 06:12





Önce şubeyi yerel olarak yaratırsınız:

git checkout -b your_branch

Ve sonra şube uzaktan oluşturmak için:

git push --set-upstream origin your_branch

Not: Bu git'in son sürümlerinde çalışır:

$ git --version
git version 2.3.0

Şerefe!


22
2018-04-21 23:43



Bu sadece komut tarafından oluşturulan yardım metnidir. git push Yerel şubeniz bir uzaktan kumanda tarafından takip edilmediğinde. - nurettin


Yerel makinenizdeki şubeyi oluşturun ve bu dalı açın:

$ git checkout -b [name_of_your_new_branch]

Şubeyi github'a itin:

$ git push origin [name_of_your_new_branch]

Şubenizde bir şey yapmak istediğinizde, şubenizde bulunduğunuzdan emin olun.

Kullanarak oluşturulmuş tüm dalları görebilirsiniz:

$ git branch

Gösterecektir:

* approval_messages
  master
  master_clean

Şubeniz için yeni bir uzaktan kumanda ekleyin:

$ git remote add [name_of_your_remote] 

Taahhütünüzdeki değişiklikleri şubenize aktarın:

$ git push origin [name_of_your_remote]

Resmi depodan orijinal şube güncellendiğinde şubenizi güncelleyin:

$ git fetch [name_of_your_remote]

Daha sonra, birleştirme değişikliklerine başvurmanız gerekir, eğer şubeniz geliştirildikten sonra geliştirmeniz gerekiyorsa:

$ git merge [name_of_your_remote]/develop

Yerel dosya sisteminizdeki bir dalı silin:

$ git branch -d [name_of_your_new_branch]

Yerel şubenin dosya sisteminizde silinmesini zorlamak için:

$ git branch -D [name_of_your_new_branch]

Github'daki şubeyi sil:

$ git push origin :[name_of_your_new_branch]

İşte bütün bilgiler

Diğer Mevcut Proje


16
2018-05-27 11:39