Yeni bir yerel şube uzak Git deposuna nasıl taşınır ve izlenir?

Aşağıdakileri yapabilmek istiyorum:

  • Diğer (uzak veya yerel) şubelere göre yerel bir şube oluşturun ( git branch veya git checkout -b )

  • Uzak depodaki yerel şubeyi tıklayın (yayınlayın), ancak bunu yapın git pull ve git push hemen çalışsın.

Bu nasıl yapılır?

Git --set-upstream biliyorum, ama bu yaratılıştan sonraki eylem. Uzak bir depodaki bir şubeye tıkladığımda benzer değişiklikler yapmanın bir yolunu bulmak istiyorum.

3689
04 мая '10 в 15:58 2010-05-04 15:58 Roni Yaniv , 04 Mayıs'ta 10: 10'da 15: 58'te istedi 2010-05-04 15:58
@ 13 cevap

Git 1.7.0 ve sonrasında, yeni şubeye göz atabilirsiniz:

 git checkout -b <branch> 

Dosyaları düzenleme, ekleme ve düzeltme. Ardından -u seçeneğine tıklayın ( --set-upstream için kısa) :

 git push -u origin <branch> 

Git siz tıkladığınızda izleme bilgilerini ayarlayacaktır.

5823
03 июня '11 в 23:50 2011-06-03 23:50 Cevap Daniel Ruoso'ya 03 Haziran 11'de 23:50 2011-06-03 23:50

Reponuzu diğer kullanıcılarla paylaşmazsanız, tüm şubelerinizi uzaktaki bir --set-upstream itmek için kullanışlıdır ve --set-upstream size göre:

 git push --all -u 
border=0

(OP'nin istediği tam olarak değil, ancak bu tek satırlı arayüz oldukça popüler)

Reponuzu başkalarıyla paylaşırsanız, bu ilginç bir form değildir, çünkü tüm ilginç deney dallarınızla repoyu dolduracaksınız.

449
20 янв. Cevap ErichBSchulz 20 Oca 2014-01-20 14:36 '14, 14:36 2014-01-20 14:36

git push -u uygulamasından önce, istediğinizi elde etmek için git push seçeneği yoktu. Yeni yapılandırma talimatları eklemeliydin.

Yeni bir şube oluşturuyorsanız, şunu kullanın:

 $ git checkout -b branchB $ git push origin branchB:branchB 

.git/config dosyasını doğrudan düzenlemekten kaçınmak için git config komutunu kullanabilirsiniz.

 $ git config branch.branchB.remote origin $ git config branch.branchB.merge refs/heads/branchB 

Veya bu konuyu izleme hakkında bilgi sahibi olmak için .git/config dosyasını elle düzenleyebilirsiniz.

 [branch "branchB"] remote = origin merge = refs/heads/branchB 
133
04 мая '10 в 16:03 2010-05-04 16:03 Cevap Lohrun tarafından 04 Mayıs '10 tarihinde 16:03 2010-05-04 16:03 tarihinde verilmiştir.

Basitçe söylemek gerekirse, yeni bir yerel şube oluşturmak için şunları yapın:

 git branch <branch-name> 

Uzak depoya taşımak için şu adımları izleyin:

 git push -u origin <branch-name> 
111
24 апр. piyushmandovra tarafından Nis 24 tarihinde verilen cevap 2015-04-24 15:09 '15 15:09 2015-04-24 15:09

Daha önce önerilen çözümlerin küçük bir varyasyonu:

  1. Başka bir uzak (yerel veya uzak) dalı temel alan yerel bir şube oluşturun:

     git checkout -b branchname 
  2. Uzak depodaki yerel şubeyi tıklayın (yayınlayın), ancak izlenebilir hale getirin, git pull ve git push hemen çalışacak

     git push -u origin HEAD 

    HEAD kullanımı "geçerli dalı uzaktan kumandadaki aynı ada çevirmek için uygun bir yoldur". Kaynak: https://git-scm.com/docs/git-push Git HEAD (büyük harf) açısından mevcut dalın (ağaç) tepesine bir linktir.

    --set-setupstream seçeneği sadece --set-setupstream için kısa. Bu, geçerli şube için bir yukarı akış izleme bağlantısı ekleyecektir. Bunu, .git / config dosyasına bakarak kontrol edebilirsiniz:

    2019

05 июля '16 в 11:13 2016-07-05 11:13 Cevap bg17aw 05 Temmuz ' da verilmiştir 11:13 2016-07-05 11:13

Örneğin, projeyi zaten klonladığınızı farz ediyorum:

 git clone http://github.com/myproject.git 
  • Ardından yerel kopyanızda yeni bir dal oluşturun ve kontrol edin:

     git checkout -b <newbranch> 
  • Sunucunuzda "git bare-init" oluşturduğunuzu ve myapp.git oluşturduğunuzu varsayalım:

     git remote add origin ssh://example.com/var/git/myapp.git git push origin master 
  • Bundan sonra, kullanıcılar yapabilmeli

     git clone http://example.com/var/git/myapp.git 

NOT. . Sunucunuzun çalıştığını varsayıyorum. Olmazsa, işe yaramaz. İyi bir pratik rehber burada .

EKLENDİ

Uzak dal ekle:

 git push origin master:new_feature_name 

Her şeyin yolunda olup olmadığını kontrol edin (uzaktaki dalların baş>

 git fetch origin git branch -r 

Yerel bir şube oluşturun ve uzak şubeyi izleyin:

 git checkout -tb new_feature_name origin/new_feature_name 

Tümünü güncelle:

 git pull 
27
Cevap VP tarafından verilir . 2010-05-04 16:04 04 Mayıs '10, 16:04 2010-05-04 16:04

Sadece yapıyorum

 git push -u origin localBranch:remoteBranchToBeCreated 

zaten klonlanmış bir proje üzerinde.

Git, remoteBranchToBeCreated yaptığım remoteBranchToBeCreated altında remoteBranchToBeCreated adlı yeni bir dal oluşturur.

24
20 марта '17 в 14:13 2017-03-20 14:13 Cevap 20 Mart 1917'de Arda tarafından 14:13 2017-03-20 14:13 tarihinde verilmiştir.

düzenleme eski, sadece git push -u origin $BRANCHNAME kullanın git push -u origin $BRANCHNAME


Git'in yayıncılık git publish-branch William'ın çeşitli Git araçlarından ( bakımlı repo ve klon ) kullanın.

Pekala, hayır Ruby, önlemleri görmezden gel! - betiğin son üç satırını alın ve bir bash betiği, git-publish-branch :

19
04 мая '10 в 16:03 2010-05-04 16:03 04 Mayıs '10 'da Tobias Kienzler ' e 16:03 2010-05-04 16:03 tarihinde cevap verdi

Yeni bir şube oluşturmak için mevcut şubeden ayırarak

git checkout -b <new_branch>

ve ardından depodaki bu yeni diziyi tıklayın.

git push -u origin <new_branch>

Bu, tüm yerel taahhütleri oluşturur ve yeni oluşturulan uzak origin/<new_branch>

16
03 июня '15 в 23:36 2015-06-03 23:36 Cevap cptjack 03 Haziran '15 tarafından 23 : 36'da verilmiştir 2015-06-03 23:36

Bir takma ad yaptım, bu yüzden ne zaman yeni bir şube oluştursam, uzak dalı uygun bir şekilde siler ve izler. Aşağıdaki .bash_profile parçasını .bash_profile dosyasına koydum:

 # Create a new branch, push to origin and track that remote branch publishBranch() { git checkout -b $1 git push -u origin $1 } alias gcb=publishBranch 

Kullanımı : Sadece gcb thuy/do-sth-kool ile thuy/do-sth-kool - bu benim yeni dal adım.

7
05 янв. Cevap Thuy Trinh tarafından verildi 05 Ocak 2016-01-05 13:11 '16, 13:11 2016-01-05 13:11

GitLab 1.7 sürümü için şunları kullanın:

git checkout -b name_branch

(name_branch, ex: ana)

Uzak bir depoya göndermek için aşağıdaki adımları izleyin:

git push -u origin name_new_branch

(name_new_branch, örnek: işlev)

6
06 дек. Cevap Fadid 06 dec. 2016-12-06 21:42 '16, 21:42 2016-12-06 21:42

Buradaki cevaplara biraz dayanarak, bu işlemi elbette Git'in takma adı olarak kullanılabilecek basit bir bash betiği olarak sardım.

Benim için önemli bir ek, taahhütte bulunmadan önce birim sınamaları yapmamı ve varsayılan dalın mevcut adını geçmem için beni teşvik etmesi.

 $ git_push_new_branch.sh Have you run your unit tests yet? If so, pass OK or a branch name, and try again usage: git_push_new_branch {OK|BRANCH_NAME} eg git_push_new_branch -> Displays prompt reminding you to run unit tests git_push_new_branch OK -> Pushes the current branch as a new branch to the origin git_push_new_branch MYBRANCH -> Pushes branch MYBRANCH as a new branch to the origin 

git_push_new_branch.sh

 function show_help() { IT=$(CAT <<EOF Have you run your unit tests yet? If so, pass OK or a branch name, and try again usage: git_push_new_branch {OK|BRANCH_NAME} eg git_push_new_branch.sh -> Displays prompt reminding you to run unit tests git_push_new_branch.sh OK -> Pushes the current branch as a new branch to the origin git_push_new_branch.sh MYBRANCH -> Pushes branch MYBRANCH as a new branch to the origin ) echo "$IT" exit } if [ -z "$1" ] then show_help fi CURR_BRANCH=$(git rev-parse --abbrev-ref HEAD) if [ "$1" == "OK" ] then BRANCH=$CURR_BRANCH else BRANCH=${1:-$CURR_BRANCH} fi git push -u origin $BRANCH 
1
21 апр. Cevap Brad Parks 21 nisan verildi . 2017-04-21 16:30 '17, 16:30 - 2017-04-21 16:30

Ortak havuzun yerel şubesini yüklemek için, paylaşılan depoyu açmak için cd ihtiyacınız var ve ardından aşağıdaki kodu kullanın:

 git push -u origin branchname 
-8
26 июня '15 в 12:37 2015-06-26 12:37 Cevap 26 Ocak'taki 15:15 de Shankar Kumar tarafından verilecek 12:37 2015-06-26 12:37

etiketleri ile ilgili diğer sorular veya bir soru sorun