29 Soru: Git uzak dal getir

tarafından oluşturulan soru Tue, Jan 22, 2019 12:00 AM

Meslektaşım ve ben aynı proje üzerinde çalışıyoruz ve farklı projeler için teknik olarak iki dalda dalladık, ancak benzerlikleri var, bu yüzden bazen master’dan * branch’a geri dönmek isteyeceğiz. p>

Ancak, branch’a sahibim. Sorum şu: Meslektaşım o şubeyi özel olarak nasıl çekebilir?

Deponun git clone'u, yerel olarak onun için şubeler oluşturuyor gibi görünmese de, sonlarımı zorladığımdan sonra yanlış gittiğini görebiliyorum.

Ayrıca, şubeyi ilk yaptığımda -b checkout yaptım. Çok fazla fark edip etmediğinden emin değil misiniz?

 
$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/discover
origin/master

$ git fetch origin discover
$ git checkout discover

Bunlar koştuğum komutlar. Ama kesinlikle çalışmıyor.

Bu şubeyi kontrol edebilmek ve ardından çeşitli ortak çalışanlardan veya iş istasyonlarından yalnızca şubelerdeki değişiklikleri itip geri almak istiyorum .

    
1925
  1. 2012-03-02 17: 27: 10Z
  2. Kullandım: git fetch --all, Sonra tüm şubeleri görüntülemek için: git branch, Sonra şubeyi kontrol ediyorum: git checkout nameofnewbranch
    2017-09-20 17: 24: 59Z
  3. 2017-12-12 19: 46: 32Z
  4. 2019-01-22 11: 09: 03Z
  5. git fetch origin discover:discover && git checkout discover
    2019-02-01 16: 15: 17Z
29 Yanıtlar                              29                         

Uzak bir dalı izleyen yerel bir şube oluşturmanız gerekir. Aşağıdaki komut daves_branch adlı uzak şubeyi takip ederek daves_branch adlı bir yerel şube oluşturacaktır. Değişikliklerinizi zorladığınızda uzaktaki şube güncellenecek.

Git'in en son sürümleri için:

 
git checkout --track origin/daves_branch

--track, git checkout -b [branch] [remotename]/[branch] için kısa yolludur; burada [remotename] bu durumda kökenlidir ve [şube] aynıdır, bu durumda daves_branch .

Git 1.5.6.5 için buna ihtiyacınız vardı:

 
git checkout --track -b daves_branch origin/daves_branch

Git 1.7.2.3 ve daha üstü için bu yeterlidir (daha erken başlamış olabilir ama bu hızlı bir şekilde bulabileceğim en eski onaydır):

 
git checkout daves_branch

Son git sürümlerinde bu komutun yerel bir şube oluşturmayacağını ve sizi 'müstakil bir BAŞLIK' durumuna getireceğini unutmayın. Yerel bir şube istiyorsanız, --track seçeneğini kullanın. Buradaki tüm detaylar: http: //git-scm .com /kitap /tr /v2 /Git-Dallanma-Uzaktan Dallar # Takip-Dallar

    
2639
2018-11-20 20: 20: 05Z
  1. "git fetch", reponuzun uzak referanslarla güncellendiğinden emin olmak için ve "git checkout --track origin /discover" yeterlidir. Ardından, uzaktan kumandayı değişikliklerinizle senkronize etmek için bu dalı ve bir "git push" u taahhüt edebilirsiniz.
    2012-03-02 17: 54: 15Z
  2. Bunu denedim ve "fatal: git checkout: güncelleme yolları şubeleri değiştirmeyle uyumlu değil." upstream /develop 'için ödeme yapmayı düşündünHangi taahhüt olarak çözülemez? ". Yanlış bir şey mi yapıyorum?
    2012-04-08 22: 40: 06Z
  3. Git 1.5.6.5'in yerine ihtiyacı var gibi görünüyor: git checkout - track -b origin /daves_branch
    2013-07-12 13: 31: 12Z
  4. Bu benim için bir karışıklık yarattı, origin /< branch > şimdi uzak dal orijinine /< dal > ve yerel çılgın şubeden nasıl kurtulacağımı bilmiyorum!
    2015-07-09 17: 00: 16Z
  5. Yerel dal adını açık bir şekilde eklemeniz gerekir, aksi takdirde git yukarıda @AlanMoore ve @ derekmx271 yukarıda belirtilen şekilde tam dal yolu ile yeni bir yerel dal oluşturur: git checkout -b --track daves_branch origin/daves_branch
    2015-07-22 15: 57: 24Z

Bunu takip eden fetch kullandım. checkout ...

 
git fetch <remote> <rbranch>:<lbranch> 
git checkout <lbranch>

... ki burada <rbranch> uzaktaki şube veya kaynak ref ve <lbranch> şu ana kadar varolmayan yerel şube veya hedef ref izlemek istediğiniz ve muhtemelen uzak dal veya kaynak ref ile aynı adı vermek istiyorsunuz. Bu, seçenekler altında açıklanmaktadır. <refspec>’un açıklaması.

Git o kadar akıllıdır ki, uzak şubenin ilk birkaç harfinden sonra sekmesi olursa ilk komutu otomatik olarak tamamlar. IE: Yerel şubeyi isimlendirmek zorunda bile değilim, Git otomatik olarak uzaktaki şubenin adını kopyalıyor. Teşekkürler Git!

Ayrıca, yerel şubeyi fetch'da adlandırmazsanız, bu benzer SO gönderisindeki cevabın gösterdiği gibi -b bayrağını kullanarak kontrol ederken hala oluşturabilirsiniz. IE: git fetch <remote> <branch> ve ardından git checkout -b <branch> <remote>/<branch>, ilk cevabım ile tamamen aynı. Ve açıkça eğer deponuzda sadece bir uzaktan kumanda varsa, git checkout <branch>'dan sonra sadece fetch'u yapabilirsiniz ve bu sizin için yerel bir şube oluşturacaktır. EG: Az önce bir repo klonladınız ve uzaktan kumandadaki ek dalları kontrol etmek istiyorsunuz.

fetch belgelerinin bir kısmının pull . Özellikle, <refspec>'daki bölüm seçenekler aynı. Ancak, fetch’un hiçbir zaman merge , böylece kolonun hedef tarafını boş bırakırsanız fetch hiçbir şey yapmamalı .

NOT: git fetch <remote> <refspec>'un git fetch <remote> <refspec>: için kısa olması, bu nedenle hiçbir şey yapmaz, ancak git fetch <remote> <tag>'un uzak git fetch <remote> <tag>:<tag>'u yerel olarak kopyalaması gereken <tag> ile aynıdır.

Sanırım bu, uzak bir şubeyi yerel olarak kopyalamak istiyorsanız, ancak derhal kontrol etmeniz gerekmez. Aksi taktirde şimdi yukarıdaki kabul edilen cevabı kullanacağım https://www.kernel.org/pub/software/scm/git/docs/git-checkout.html#_description "rel =" noreferrer "> ödeme açıklaması ve daha sonra seçenekler bölümü, --track’un açıklaması altında astar. Şey ... bir çeşit astar, çünkü hala önce git fetch <remote>’u çalıştırmanız gerekirdi.

FYI: <refspecs>'un sırası (kaynak: hedef) uzak dalları silme . IE: Refspec hedefine hiçbir şey itmeyin.

    
856
2017-05-23 12: 02: 58Z
  1. Git otomatik tamamlamanın kurulum olduğunu varsayıyorsunuz. code-worrier.com/blog/autocomplete-git
    2013-08-29 09: 19: 30Z
  2. Bu, uzak kodu yerel bir şubeye almak için çalıştı. Ancak uzak şubeyi izlemem için yerel şubemi almadı.
    2014-09-17 22: 35: 12Z
  3. Bazı nedenlerden dolayı, git fetch remote branch, tüm referanslar alınmakla birlikte benim için bir şube başlığı eklemedi, bu nedenle kabul edilen adımları takip etmeye çalıştığımda cevap, pathspec did not match any file(s) known to git. hatası aldım, ancak rbranch:lbranch yaklaşımı işe yaradı. İlginç bir şekilde, aynı önekle başlayan tüm etiketleri, bir joker karakter (rbranch*) gibi aldı.
    2015-06-30 08: 36: 05Z
  4. Nit: git otomatik tamamlamayı yapmaz, bunu yapan bash kabuğudır.
    2015-12-29 20: 44: 22Z
  5. FWIW, bence bu cevapla kabul edilen cevap arasındaki fark, bunun fetch komutunu yapmanızı söylemesidir. Ancak kabul edilen cevap mantıklı geliyor çünkü OP zaten çekmeyi yaptığını belirtti. En azından karşılaştığım konu bu.
    2017-03-16 15: 17: 09Z

Yeni bir uzak şubeyi (yalnızca uzaktan kumandada var olan ancak yerel olarak bulunmayan) "ödemeye" çalışıyorsanız, burada ihtiyacınız olacak şey:

 
git fetch origin
git checkout --track origin/<remote_branch_name>

Bu, kaynağından almak istediğinizi varsayar. Değilse, kökeni yerine uzak adınızı yazın.

    
324
2017-01-06 07: 24: 54Z
  1. "kökenli" kökenli "kafa karıştırıcı bir dildir, yukarıdaki yorumunuzu kökenli" getir "olarak değiştirmek daha iyidir. Çekme, alma ve birleştirme yapan ve yeni gelenleri kesinlikle karıştıran bir emirdir (dahil)
    2014-06-18 03: 38: 52Z
  2. Benim için çalıştım, doğru uzak şubeyi almadım, bu nedenle kabul edilen cevap benim için kafa karıştırıcı bir mesajla başarısız oldu. 1
    2017-05-16 16: 32: 00Z
  3. Doğrudan noktaya
    2019-05-15 00: 19: 09Z

Yerel olarak değil, yerel olarak bulunan myBranch'ı kontrol etmek için - Bu benim için çalıştı:

 
git fetch --all
git checkout myBranch

Bu mesajı aldım:

 
Branch myBranch set up to track remote branch myBranch from origin
Switched to a new branch 'myBranch'
    
105
2013-11-12 03: 36: 22Z
  1. Başka bir deyişle, -t yazmak zorunda değil misiniz?
    2014-04-07 16: 47: 13Z
  2. Bu cevapta bir hata olduğunu düşünüyorum. Komutu -t olmadan yaptım ve You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. aldım çünkü aynı ismin yerel bir şubesi yoktu. Düzeltmek için -t ile tekrar koşmam gerekti.
    2015-09-23 16: 38: 36Z
  3. Bu benim için işe yaradı - meslektaşım yerel repoma eklemek istediğim yeni bir uzak şube ekledi. Almaya devam ettim ancak yeni şubenin yerel olarak göründüğünü görmedim. Bunun için checkout'u çalıştırabileceğimin farkında değildim. Teşekkürler!
    2016-07-22 16: 23: 16Z
  4. git sürümlerine göre değişir. En son sürüm, burada başka bir yerde de belirtildiği gibi, yalnızca git checkout &kaynak kodlu şubenin adı > AYNI ADI YEREL İLE UZAKTAN ŞUBELERE DİKKATLİ OLUN - işleri mahvedecekler
    2017-07-14 11: 20: 05Z

Tüm uzaktan kumandaları ve şubelerini görmek için git branch -a (hem yerel hem de uzak dallar) veya git branch -r (yalnızca uzak dallar) kullanın. Sonra git checkout -t remotes/repo/branch'u uzaktan kumandaya yapabilir ve yerel bir şube oluşturabilirsiniz.

Bu uzaktan kumandanın tüm referanslarını ve etiketlerini görmek için bir git ls-remote komutu var.

    
46
2013-09-25 13: 01: 32Z
  1. git checkout remotes/repo/branch, git çıkışını uzak bir repo değil, pathspec için arar.
    2013-02-15 19: 09: 34Z
  2. Evet, uzak repo üzerindeki bir şubeye göz atmak bile mümkün mü? Açıkçası (veya belki de çok açık değildi), uzaktan kumandalar yerel olarak elde edilmek için ilk önce getirilir. Git kitabının üzerinde iyi bir bölüm var: git-scm.com/kitap /tr /Git-Dallanma-Uzaktan Dallar
    2013-02-16 01: 15: 42Z

Başlık ve sorunun kafası karışıyor:

  • Git uzak şubeyi getir
  • Meslektaşım o şubeyi özellikle nasıl çekebilir?

Soru, uzak bir şubeyle nasıl çalışabilirim veya uzak bir şubeye nasıl bakacağım, daha basit bir çözüm:

git ile (> = 1.6.6) aşağıdakileri kullanabilirsiniz:

 
git checkout <branch_name>

Yerel <branch_name> bulunmazsa ancak eşleşen bir adla tam olarak bir uzaktan kumandada bir izleme dalı varsa, şunlara eşdeğer olarak kabul edin:

 
git checkout -b <branch_name> --track <remote>/<branch_name>

Git kasası için belgelere bakın

Arkadaşın için:

 
$ git checkout discover
Branch discover set up to track remote branch discover
Switched to a new branch 'discover'
    
37
2014-03-31 10: 53: 41Z
  1. Teşekkürler Guillaume! Ben sadece bu komutu kullandım ve tam davamı açıklamak için bir yazı yazdım: leniel.net/2014/05/…
    2014-05-15 20: 28: 42Z
  2. <! - git ödeme < remote-branch-name > - > beklendiği gibi çalışıyor, teşekkürler Guillaume!
    2018-01-02 18: 59: 11Z
 
git checkout -b serverfix origin/serverfix

Bu, git --track shorthand'in sağladığı yeterince yaygın bir işlemdir:

 
git checkout --track origin/serverfix

Aslında, bu kadar yaygındır; bu kısayol için bir kısayol bile vardır. Ödeme yapmaya çalıştığınız şube adı (a) mevcut değilse ve (b) yalnızca bir uzaktan kumandadaki bir adla tam olarak eşleşiyorsa Git sizin için bir izleme şubesi oluşturur:

 
git checkout serverfix

Uzak şubeden farklı bir ada sahip bir yerel şube ayarlamak için, ilk sürümü farklı bir yerel şube adına göre kolayca kullanabilirsiniz:

 
git checkout -b sf origin/serverfix

Şimdi, yerel şubeniz otomatik olarak başlangıç ​​noktanızdan /sunucudan çekecektir.

Kaynak: Pro Git 2nd Edition, yazılı Scott Chacon ve Ben Straub tarafından (okunabilirlik için kesilmiş)

    
27
2017-09-18 14: 13: 14Z
  1. Bu kısa dersler bir dersti
    2019-04-26 09: 06: 17Z

Bu basit komutla:

 
git checkout -b 'your_branch' origin/'remote branch'
    
21
2018-02-12 19: 13: 05Z

Bunu yapmanın en kolay yolu, en azından benim için:

 
git fetch origin <branchName>
    
15
2017-11-20 01: 00: 14Z
  1. Başka şubeler getirmiyor
    2017-10-17 08: 23: 22Z
  2. @ BenjaminHarel sorusu, tüm dalları değil "uzak bir dalı al" diyor. Bunun için bu sizin için yararlı olabilir
    2018-05-02 23: 16: 49Z
  3. Bu fetch komutunu kullandıktan sonra gerekli dal yerel makinede bulunacaktır. Bu şubeye ödeme yapmak için git checkout -b 'your_branch' origin/'remote branch' gerekir.
    2019-01-02 03: 58: 00Z

Bana ne yardım etti?

1) Kullanılabilir tüm uzak dalları görüntülemek için (örneğin, 'uzak dal adı')

 
git branch -r

2) Uzak dal adını kullanarak yerel dal oluşturma

 
git fetch && git checkout 'remote-branch-name'
    
14
2018-09-17 02: 16: 14Z
  1. git push komutunu başka bir argüman olmadan çalıştırdığınızda ne olur? remote-branch-name adlı yerel şube, origin/remote-branch-name adlı uzak şube ile otomatik olarak ilişkilendirilir (izlenir). Yoksa git push -u origin remote-branch-name'u mı çalıştırmanız gerekiyor
    2018-11-07 18: 15: 01Z
  2. bu HEAD'in ayrılma durumuna neden olur
    2018-11-29 17: 38: 45Z
 
git fetch

git branch -r

git checkout <branch_name>
    
13
2013-12-04 21: 13: 32Z

Uzak şubeyi bir kerede çekip satın alabilirsiniz: -

 
git fetch && git checkout the-branch-name
    
13
2015-03-25 06: 43: 02Z

ben yazdım

 
git checkout <branch_name>

ve aldım

 
Branch <branch_name> set up to track remote branch <branch_name> from origin.
Switched to a new branch '<branch_name>'
    
11
2015-04-10 22: 43: 19Z
  1. git checkout dokümantasyonundan: Eğer < branch_name > bulunamadı, ancak eşleşen bir adı olan ve tam olarak bir uzaktan kumandada bir izleme dalı var, buna eşit olarak kabul et: git checkout -b <branch_name> --track <remote>/<branch_name>
    2014-03-31 10: 49: 26Z

Bazen sizden ana dalla oynamamanız ve yalnızca uzak dalla çalışmamanız istenir.Ked). Yani tek ihtiyacınız olan uzaktaki şube.

Uzak dalı tek başına klonlamak için (ana olmadan), bunu yapın

 
git clone url --branch remote_branch_name

burada, remote_branch_name uzak şubenin adıdır

Örneğin,

 
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --branch v3.15

Bu, uzak şubeyi, uzak şubenin adıyla yerel şubenize klonladığınızdan emin olmanızı sağlar.

Şimdi kodunuzu girip basarsanız, kod yalnızca o şubeye gönderilir.

    
9
2015-02-06 05: 11: 05Z

git fetch --all & git checkout <branch name>

    
7
2017-11-20 00: 42: 13Z

Diyelim ki kumandanızın git@xyz.git olduğunu ve onun random_branch şubesini istediğinizi söyleyin. İşlem şu şekilde olmalıdır:

  1. İlk önce uzaktan kumanda listenizi kontrol edin

      

    git remote -v

  2. Yukarıdaki komutun çıktısında git@xyz.git kumandanız yoksa, bunu ekleyerek

      

    git remote add xyz git@xyz.git

  3. Artık o uzaktan kumandanın içeriğini getirerek
      

    git fetch xyz

  4. Şimdi şu uzaktan kumandanın şubesini kontrol et
      

    git checkout -b my_copy_random_branch xyz/random_branch

  5. Şube listesini kontrol et
      

    git branch -a

Yerel şube my_copy_random_branch, uzaktan kumandanızın random_branch şubesini izliyor olacak.

    
7
2018-03-06 16: 59: 13Z

Uzaktaki bir şubeyi almak için en basit yol şudur:

 
git fetch origin
git checkout branchName

Uzaktan kumandada zaten var olup olmadığını görebilirsiniz:

 
git branch -r

Bu uzak şubeyi yerelinize getirecek ve uzak olanı otomatik olarak izleyecektir.

    
7
2019-05-17 22: 37: 54Z
  1. Bu soru nasıl daha fazla oyuna sahip değil? Yanılıyor olabilirim ama bu kesin gibi görünüyordu, yerelden uzaktan almadığım bir şubem var ...
    2019-05-14 20: 16: 56Z
  2. Ahhh, eğer şube sisteminizde değilse, önce çalıştırması gerekir: git fetch bunun çalışması. Şuanda git branch -r çalıştırarak yerel bölgenizde olup olmadığını görebilirsiniz, şube listelenmemişse hata alırsınız.
    2019-05-17 13: 52: 36Z
  3. @ Nicholas cevabı düzenlemekten çekinmeyin. Cevabı uzun zamandır düzenlemek istedim. Yapmayı unuttum.
    2019-05-17 19: 49: 24Z

git fetch && git checkout <your friend's branch name> hile yapmalı

    
6
2018-04-25 11: 37: 50Z

tüm uzak şubeleri yerel bölgenize getirmek için oneliner komutunu vermek ve istediğiniz yeni oluşturulan yerel şubeye geçmek istiyorum:

 
git fetch && git checkout discover

Yukarıdaki komutu çalıştırdıktan sonra mesajın altına ulaşacaksınız:

 
Switched to a new branch 'discover'
Branch discover set up to track remote branch discover from origin.

ilk satır bir Yeni şube - neden yeni? zaten uzaktan kumandada !.

Ama aslında onu yerel olarak da oluşturmanız gerekir, şube uzak dizinden alınır ve sizin için yerel olarak oluşturulur.

İşte discover, deponuzun uzak şubesi discover'dan oluşturulan yeni bir şubedir.

Ancak ikinci satır , t’den daha fazla bilgi verir.bize bunu söyleyen ilk kişi:

şubemiz, aynı adı taşıyan uzak şubeyi izlemek için ayarlanmıştır.

Her ne kadar git fetch tüm şubeleri yerel alana getirir , ancak bundan sonra git branch'u çalıştırırsanız, yerel olarak yalnızca master şubeyi göreceksiniz neden ?

çünkü uzaktan kumandadaki her şube için, yerel olarak da oluşturmanız gerekir, yukarıdaki örnekte yaptığımız gibi git checkout <branchname> olarak izlemek için.

git checkout komutunu çalıştırdıktan sonra git branch komutunu çalıştırabilirsiniz, şimdi her iki dalı da görebilirsiniz:

  1. ana ve 2. yerel girişinizde keşfedin.
6
2019-05-08 06: 13: 51Z

basitçe deneyin

$git çekme kökeni your_branch_name

    
5
2017-12-12 20: 44: 31Z
  1. Rizo, git çekme kökeni branch_name en iyi çözüm olmalıdır. Bunu bir çözüm olarak yayınlayan tek kişisiniz ve benim için çalıştı. Bu, şubenizi ana şubeyle güncelleyeceği için çalışır. basit ve basit.
    2018-08-13 16: 31: 04Z
  2. bununla ilgili sorun, bu uzak şubeyi CURRENT şubenizle birleştirmeye çalışacak olmasıdır (yerel reponuz için yeni)
    2019-04-26 09: 01: 42Z
  3. Bu, geçerli şubenizle birleşecek.
    2019-06-13 03: 48: 43Z

Adımlar aşağıdaki gibidir;

  1. git fetch origin veya git fetch --all, bu, tüm uzak dalları yerelinize getirecek ve sonra bu işlem yapabileceğiniz ikinci seçenek olacaktır.

  2. git checkout --track origin/<The_remote_branch you want to switch over>

Sonra bu dalda çalışın ve bu dalda olup olmadığınızı doğrulayarak yazabilirsiniz

 
git branch

Şu anda bulunduğunuz şubeyi görüntüler.

    
3
2013-12-26 10: 09: 11Z

Uzak şubenizi zaten böyle tanıyorsanız ...

 
git remote
=> One
=> Two

ve ödeme yapmak istediğiniz şubenin adını biliyorsunuz. br1.2.3.4 sonra yapın

 
git fetch One
=> returns all meta data of remote i.e. the branch name in question.

geriye kalan tek şey şubeye ödeme yapmaktır

 
git checkout br.1.2.3.4

Ardından yeni şubelerden ayırın.

    
3
2015-06-26 17: 51: 26Z

.git/config’unuzu kontrol edin, özellikle o uzaktan kumanda için getirme 'de hangi izlemenin mevcut olduğunu kontrol edin.

 
[remote "randomRemote"]
    url = git@github.com:someUser/someRepo.git
    fetch = +refs/heads/*:refs/remotes/randomRemote/*

heads/*’u randomRemote/*’a işaret ediyorsa, git fetch randomRemote’u çalıştırdığınızda tüm dalları alır. Ardından o şubeyi kontrol edebilirsiniz.

Aksi takdirde,

  1. Bunu kullanarak izlemeye uzak dallar eklemeniz gerekir. Bunu çalıştırdıktan sonra .git/config'unuzu kontrol edin. Anlayacaksın. git uzak küme şubeleri - randomdemote randomBranch eklenir

  2. git fetch randomRemote'u çalıştırın. Bu, uzak şubeyi getirir.

  3. Artık git checkout randomBranch'u çalıştırabilirsiniz

2
2017-02-01 14: 29: 24Z

--depth 1 ile klonlanmış bir havuzunuz varsa, listelenen komutların çoğu çalışmaz. Örneğin, buraya bakın

 
% git clone --depth 1 https://github.com/repo/code
Cloning into 'code'...
cd code
remote: Counting objects: 1778, done.
remote: Compressing objects: 100% (1105/1105), done.
remote: Total 1778 (delta 87), reused 1390 (delta 58), pack-reused 0
Receiving objects: 100% (1778/1778), 5.54 MiB | 4.33 MiB/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.
Checking out files: 100% (1215/1215), done.
% cd code
% git checkout other_branch
error: pathspec 'other_branch' did not match any file(s) known to git.
% git fetch origin other_branch
remote: Counting objects: 47289, done.
remote: Compressing objects: 100% (15906/15906), done.
remote: Total 47289 (delta 30151), reused 46699 (delta 29570), pack-reused 0
Receiving objects: 100% (47289/47289), 31.03 MiB | 5.70 MiB/s, done.
Resolving deltas: 100% (30151/30151), completed with 362 local objects.
From https://github.com/repo/code
 * branch            other_branch-> FETCH_HEAD
% git checkout other_branch
error: pathspec 'other_branch' did not match any file(s) known to git.
%

Bu durumda, depoyu yeniden ele geçirirdim, ancak belki de başka teknikler var. git sığ klon (klon --depth) uzak şubeleri özlüyor

    
2
2018-01-24 21: 21: 03Z

Şubelerinizi ayrı tutmak için 'git pull' kullanın. 'Lbranch' ve 'rbranch' deşifre etmek zor olduğu için gerçek repo ve branş isimlerini kullanacağım.

Kullanalım:

  • myteam.unfuddle.com = uzak git sunucusu
  • tlc = deponun bulunduğu proje hesabını ayırma
  • daves_branch = uzak dal adı

    Siz veya herhangi bir meslektaşınız, kaç şubeniz olursa olsun, yalnızca şubenizi çekmek için bunu çalıştırabilirsiniz:

     
    git init
    git pull git@myteam.unfuddle.com:myteam/tlc daves_branch:refs/remotes/origin/daves_branch
    
        
  • 1
    2013-05-22 21: 10: 02Z

    git branch <name> --track origin/<name>

        
    1
    2018-03-11 18: 02: 34Z
    1. bu, beni sürüm 1.8.3.1'de çalıştı.
      2018-11-13 19: 31: 49Z

    Tüm uzak şubeleri almak istiyorsanız, lütfen sadece yazın

     
    git fetch --all
    

    Uzaktaki tüm şubeleri görmesi için başkasına yardımcı olacağını umarız.

        
    1
    2019-06-12 09: 37: 25Z

    Basit bir komut - "git checkout remote_branch_name", uzak daldaki tüm değişiklikleri içeren yerel bir dal oluşturmanıza yardımcı olur.

        
    0
    2018-01-19 12: 34: 41Z
     
    git checkout -b branch_name
    git pull remote_name branch_name
    
        
    - 2
    2019-01-22 10: 43: 08Z
    1. Bu snippet soruyu cevaplayabilse de, ne yaptığı ve buradaki çok sayıdaki yanıttan nasıl farklılaştığı hakkında bazı açıklamalar eklemek daha iyidir.
      2019-01-22 11: 11: 28Z
    2. Şahsen bu seçeneği sevmiyorum. Master’dan yeni bir şube oluşturup ardından uzak daldan veri çekiyorsanız, bu uzak dal ana ile aynı sayfada olabilir veya olmayabilir ve bazı gereksiz kod güncellemeleri davet edebilir.
      2019-01-31 12: 29: 34Z
    kaynak yerleştirildi İşte