Uzaq bir git şöbəsini necə idarə etmək olar?

Kimsə, git push origin test ilə birgə bir git push origin test daxil olan bir filialı tıkladı. git branch -r görürəm.

İndi uzaq dal test sınamağa çalışıram.

Mən çalışdım:

  • git checkout test heç bir şey yoxdur

  • git checkout origin/test verir * (no branch) . Bu qarışıqdır. Necə "şəffaf" ola bilərəm?

Uzaq bir git şöbəsini necə idarə etmək olar?

5758
23 нояб. Juri Glass tərəfindən 23 Noyabrda təyin olundu 2009-11-23 17:23 '09 da 17:23 'da 2009-11-23 17:23
@ 26 cavab

Yeniləmə

Yaqubun cavabı həqiqətən yaxşılaşır. Git sürümleriyle ≥ 1.6.6 bir uzaqdan, sadəcə:

 git fetch git checkout test 

Istifadəçi masukomi şərhdə qeyd edildiyi kimi, birdən çox konsolunuz varsa, git checkout test modern keçiddə işləməyəcəkdir. Bu halda istifadə edin

 git checkout -b test <name of remote>/test 

və ya stenoqrafiya

 git checkout -t <name of remote>/test 

Köhnə cavab

Yerli işi uzaq bir filialla başlamadan əvvəl, aşağıdakı cavablarda göstərildiyi kimi, onu almaq lazımdır.

Şöbə almaq üçün sadəcə:

 git fetch origin 

Bu, bütün uzaq filialları gətirəcək. Siz sifariş etmək üçün mövcud olan filialları görə bilərsiniz:

 git branch -v -a 

İndi uzaq filiallarınız var ki, maraqlandığınız şöbəni yerli işçi surəti ilə təmin etməlisiniz:

 git checkout -b test origin/test 
7947
23 нояб. Cavab hallski 23 noyabr tarixində verilir. 2009-11-23 17:26 '09 at 5:26 pm 2009-11-23 17:26

Sidenote: Müasir Git (> = 1.6.6 ) ilə yalnız istifadə edə bilərsiniz

 git checkout test 

("test" deyil, 'mənşə / test' deyil) sehrli DWIM- serialını yerinə yetirmək və sizin üçün "mənşə / test" in uzaq izi olacağı bir yerli şöbənin "testi" yaratmaqdır.

border=0

git branch çıxış * (no branch) sözdə "qapalı HEAD" dövlətində adı verilməmiş bir şöbədə olduğunuzu bildirir (HEAD birbaşa törətməyi nəzərdə tutur və bəzi yerli şöbənin simvolik əlaqəsi deyil). Bu adı açıqlanmayan filialda bəzi əmsallar yaratdığınız təqdirdə həmişə mövcud törətmə ilə yerli şöbə yarada bilərsiniz:

 git checkout -b test HEAD 
1147
24 нояб. Nov. 24-də Jakub Narębski tərəfindən verilmiş cavab 2009-11-24 03:17 '09 at 3:17 'da 2009-11-24 03:17

Bu halda, ehtimal ki, uzaqdan test şöbəsini izləyən bir yerli test şöbəsi yaratmaq istəyirsən:

 $ git branch test origin/test 

--track əvvəlki versiyalarında, açıq bir seçim variantına ehtiyacınız oldu, ancaq bu, uzaq bir şöbənin --track indi u --track .

508
23 нояб. Cavab verildi 23 noyabr. 2009-11-23 17:27 '09 at 17:27 'da 2009-11-23 17:27

Qəbul edilmiş cavab sizin üçün işləmir?

İlk və seçilmiş cavab texniki cəhətdən düzgün olsa da, hələ ki, bütün obyektləri və bağlantıları uzaqdan saxladığınız ehtimal var. Əgər belədirsə, aşağıdakı səhvləri alacaqsınız:

 $ git checkout -b remote_branch origin/remote_branch 

ölümcül: git checkout: yeniləmə yolları keçid şöbəsi ilə uyğun deyil.
Təqdim etməli olaraq həll edilə bilməyən "mənşəyi / uzaq_branç" ı yoxlamaq niyyətindəsiniz?

Həll

Bu mesajı alırsanız, ilk növbədə, git fetch origin uzaqdan uzaqdan idarə git checkout remote_branch əvvəl git checkout remote_branch . Cavablar ilə tam bir nümunə:

 $ git fetch origin remote: Counting objects: 140, done. remote: Compressing objects: 100% (30/30), done. remote: Total 69 (delta 36), reused 66 (delta 33) Unpacking objects: 100% (69/69), done. From https://github.com/githubuser/repo-name e6ef1e0..5029161 develop -> origin/develop * [new branch] demo -> origin/demo d80f8d7..359eab0 master -> origin/master $ git checkout demo Branch demo set up to track remote branch demo from origin. Switched to a new branch 'demo' 

Gördüyünüz git fetch origin çıxarılmış uzaq filialların gedə git fetch origin idarə edərkən, hələ yerli maşınlarımızda izləmə qurulmamışdır. Oradan, indi uzaq bir filiala keçid olduğundan, sadəcə uzaqdan git checkout remote_branch idarə edə bilərik və biz uzaqdan izlənmənin üstünlüklərini əldə edəcəyik.

421
07 дек. Corey Ballou tərəfindən verilmiş cavab 07 Dek 2012-12-07 23:52 '12 at 11:52 pm 2012-12-07 23:52

Mən yuxarıdakı həll yolu sınamışam, amma işə yaramadı. Bunu sınayın, işləyir:

 git fetch origin 'remote_branch':'local_branch_name' 

Bu, uzaqdan filiala gətirib çıxaracaq və local_branch_name adı ilə yeni bir yerli şöbə local_branch_name və onu local_branch_name .

208
18 окт. Sahil kalra tərəfindən verilən 18 aylıq cavab . 2013-10-18 08:55 '13 'da 8:55' də 2013-10-18 08:55 'də

Bu, adı açıqlanmayan uzaq ad üçün DWIM olacaqdır ( sənədlər ):

 $ git checkout -t remote_name/remote_branch 

Yeni bir uzaqdan nəzarət etmək üçün aşağıdakıları etməlisiniz:

 $ git remote add remote_name location_of_remote $ git fetch remote_name 

Birincisi Git uzaqdan çıxışı izah edir, ikincisi isə vəzifə alır.

104
28 апр. Tacaswell cavab 28 Apr 2012-04-28 01:37 '12 at 1:37 2012-04-28 01:37

İstifadə edin:

 git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME> 

Digər cavablar müasir Git ilə yaxşı işləməyimlə işləmir. Uzaq filial yeni olsaydı, ilk növbədə köçməlisiniz, amma bu işi yox etdim.

98
21 февр. Cavab 21 fevralda matanster tərəfindən verilir . 2016-02-21 13:58 '16 saat 13:58 'da 2016-02-21 13:58

Bəli , cavab sadədir ... Siz əsasən bir filial görürsünüz, amma hələ də yerli bir surətiniz yox!

fetch filialı fetch ...

Bunu etmək üçün aşağıda bir sıra əmrini istifadə edərək, bir şöbədə sifariş verə və sonra sifariş verə bilərsiniz:

 git fetch  git checkout test 

Fərqlərinizi paylaşa bilmək üçün, aşağıda bir şəkil fetch , necə fetchpull necə olduğunu gör:

2019

05 сент. Cavab Alirza verildi. 2017-09-05 17:20 '17 saat 17: 20-da 2017-09-05 17:20

Git deposunu klonlamaq üçün:

 git clone <either ssh url /http url> 

Yuxarıda göstərilən komanda bütün filialları yoxlayır, lakin yalnız master şöbəsi işə salınacaq. Digər şöbələri yoxlamaq istəyirsinizsə, aşağıdakı adımları edin:

 git checkout -t origin/future_branch (for example) 

Bu əmr uzaq filialı yoxlayır və yerli şöbinizin adı uzaq filiala aiddir.

Ödəmə zamanı yerli şöbənin adını ləğv etmək istəyirsinizsə:

 git checkout -t -b enhancement origin/future_branch 

İndi yerli future_branch adı enhancement , lakin uzaq filialınızın adı future_branch .

Sənədlər

48
21 янв. Cavab Madhan Ayyasamy verilir 21 Yanvar 2013-01-21 13:04 '13 at 13:04 2013-01-21 13:04

Siz cəhd edə bilərsiniz

 git fetch remote git checkout --track -b local_branch_name origin/branch_name 

və ya

 git fetch git checkout -b local_branch_name origin/branch_name 
31
24 марта '14 в 16:11 2014-03-24 16:11 Cavab 24 mart, '14 'də saat 16:11' də verilir. 2014-03-24 16:11

Birincisi, bunu etmək lazımdır:

git fetch # filialın adını bilmirsinizsə

 git fetch origin branch_name 

İkincisi, uzaq filialı yerli yerlərə yoxlaya bilərsiniz:

 git checkout -b branch_name origin/branch_name 

-b seçilmiş uzaq filialda göstərilən adda yeni bir şöbə yaradır.

27
18 мая '17 в 16:55 2017-05-18 16:55 Cavab 18 may 17'də Mohideen ibn Məhəmməd tərəfindən 16:55 2017-05-18 16:55 tarixində verilir

Komandalar

 git fetch --all git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name> 

bərabərdirlər

  git fetch --all 

və sonra

  git checkout -b fixes_for_dev origin/development 

Hər ikisi development latest fixes_for_dev

25
21 апр. cavab sreekumar tərəfindən verilir 21 Apr 2016-04-21 22:10 '16 saat 10:10 'da 2016-04-21 22:10

Mən aşağıdakı əmrləri istifadə edirəm:

 git checkout --track origin/other_remote_branch 
23
06 сент. Cavab verilir priyankvex 06 sep . 2017-09-06 17:41 '17 də 5:41 'də 2017-09-06 17:41

Şöbə uzaq origin başqa bir origin , mən aşağıdakıları etmək istərdim:

 $ git fetch $ git checkout -b second/next upstream/next 

Bu second/next adı verilən yerli filialdakı uzaqdan upstream serverdə next filialı yoxlayacaqdır. Bu, növbəti adı verilən bir yerli şöbə varsa, bu münaqişə olmaz.

 $ git branch -a * second/next remotes/origin/next remotes/upstream/next 
22
01 марта '13 в 13:00 2013-03-01 13:00 Cavab 01 mart 13: 13-də Kris tərəfindən verilir. 2013-03-01 13:00

git fetch git checkout your-branch-name

15
26 марта '14 в 10:00 2014-03-26 10:00 cavab 26 dekabr '14 'də saat 10.00' da İnder Kumar Rathore'a veriləcək

git branch -r deyir ki, obyektin adı etibarsızdır, çünki bu filialın adı Git filiallarının siyahısında deyil. Yerli şubelerinizi mənbədən yeniləyin:

 git remote update 

Uzaq filialı yoxlamaq üçün yenidən cəhd edin.

Mənim üçün çalışdı.

Mən inanıram ki, git fetch orijinal posterin istəmədiyi bütün uzaq filiallarda çəkir.

15
06 июня '13 в 15:21 2013-06-06 15:21 Cavab webdevguy tərəfindən 06.06.2013 15:21 da verilir 2013-06-06 15:21

Bu cavabların heç biri mənim üçün işləməmişdi. işləyirdi:

git checkout -b feature/branch remotes/origin/feature/branch

14
10 июля '18 в 5:11 2018-07-10 05:11 Cavab brianyang tərəfindən 10 iyul '18 ' də saat 05:11' də 2018-07-10 05:11 'də verilir

git remote show <origin name> əmrində bütün filialların siyahısı (izlənməmiş şöbələr daxil olmaqla) göstərilir. Sonra çıxarmaq istədiyiniz uzaq filialın adını tapa bilərsiniz.

Məsələn:

 $ git remote show origin 

Uzaq filialları çıxarmaq üçün bu addımlardan istifadə edin:

 git fetch <origin name> <remote branch name>:<local branch name> git checkout <local branch name > (local branch name should the name that you given fetching) 

Məsələn:

 $ git fetch origin test:test $ git checkout test 
11
07 янв. Cavab Thushan 07 Jan tərəfindən verilir 2018-01-07 16:12 '18 saat 04:12 'da 2018-01-07 16:12

Digər uşaqlar və qızlar həll təklif edir, amma bəlkə niyə deyə bilərəm.

heç bir şey etməyən git testi testi

doesn't work bərabər doesn't work , belə ki, terminallığınızdakı 'git checkout testi' daxil olduğunuzda və enter düyməsini basın, mesaj görünmür və heç bir səhv baş vermir. Am i sağ

Cavab bəli, mən sizə səbəb deyə bilərsiniz.

Bunun səbəbi ağacındakı "test" adlı bir fayl (və ya qovluq) olduğunu göstərir.

git checkout xxx out git checkout xxx fiqurlu zaman,

  • git ilk filialın adı kimi xxx baxmaq, lakin test adlı filial yoxdur.
  • Sonra Git xxx yol olduğunu düşünür və xoşbəxtlikdən (və ya təəssüf ki,) test adlanan bir fayl var. Buna görə, git checkout xxx xxx faylında hər hansı bir dəyişiklik ləğv etmək deməkdir.
  • xxx adı ilə heç bir fayl yoxdursa, Git bəzi qaydalara uyğun olaraq xxx yaratmağa çalışacaq. Bir qayda, remotes/origin/xxx varsa, xxx adı ilə bir filial yaratmaqdır.
8
10 июля '17 в 10:45 2017-07-10 10:45 cavab 10 iyul, 10:45 'da 10 iyul 2017-07-10 10:45 tarixində verilir

error: pathspec 'desired-branch' did not match any file(s) known to git. olduğu bir vəziyyətdə error: pathspec 'desired-branch' did not match any file(s) known to git. yuxarıda göstərilən bütün təkliflər üçün. Git versiyasını 1.8.3.1-də oldum.

Beləliklə, mənim üçün çalışdı :

 git fetch origin desired-branch git checkout -b desired-branch FETCH_HEAD 

Bunun izahı, mən uzaq bir filialın alınması zamanı FETCH_HEAD-da seçildiyini fərq etdim:

 $ git fetch origin desired-branch From github.com:MYTEAM/my-repo * branch desired-branch -> FETCH_HEAD 
7
11 окт. cavab alisa 11 Oct 2018-10-11 00:52 '18 at 0:52 2018-10-11 00:52

Yalnız uzaq şöbənin adı ilə git checkout . Git avtomatik olaraq uzaqdan izləyən bir yerli şöbə yaradır :

 git fetch git checkout test 

Ancaq bu şöbə adı birdən çox konsolda tapılarsa, işə yaramır, çünki Git nə istifadə etməyini bilmir. Bu halda, aşağıdakılardan birini istifadə edə bilərsiniz:

 git checkout --track origin/test 

və ya

 git checkout -b test origin/test 

2.19-da Git, checkout.defaultRemote konfiqurasiyasını araşdırdı, bu cür qeyri-müəyyənlik aradan qaldırıldığında, u mənim uzaqdan idarəetmə dəyəri göstərildi.

6
13 сент. Cavab Eugene Yarmaş tərəfindən 13 sentyabrda verilir . 2018-09-13 15:21 '18 'də saat 15 : 21' da 2018-09-13 15:21

Yeni yaradılmış filialları əldə etmək

 git fetch 

Digər şöbəyə keçin

 git checkout BranchName 
6
15 марта '18 в 11:49 2018-03-15 11:49 Cavab Hasib Kamalın 15 Mart'ta saat 11:49 'də 2018-03-15 11:49' də verildi

Aşağıdakı bash skripti ilə silinmiş bütün filialları izləyə bilərsiniz:

 #!/bin/bash git fetch --all for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'` do git branch -f --track "$branch" "origin/$branch" done 

Həm də tək xətt versiyası:

 git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ; 
6
11 авг. Cavab ÖzzyCzech 11 avqustda verilir . 2017-08-11 15:06 '17 at 15:06 2017-08-11 15:06

Boş bir qovluq yaratmaq üçün bu əmr edin. Daxil edin və aşağıdakı əmrləri istifadə edin:

 saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url Cloning into 'iPhoneV1'... remote: Counting objects: 34230, done. remote: Compressing objects: 100% (24028/24028), done. remote: Total 34230 (delta 22212), reused 15340 (delta 9324) Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done. Resolving deltas: 100% (22212/22212), done. Checking connectivity... done. saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/ saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin. Switched to a new branch '1_4_0_content_discovery' 
2
01 янв. Cavab Mehedi Hasan Jan 01 tərəfindən verilir 2016-01-01 13:31 '16 'da 13:31' də 2016-01-01 13:31

Mənşəyi alın və filialı yoxlayın.

 git fetch origin  git checkout branch_name 
1
21 мая '18 в 14:33 2018-05-21 14:33 Cavab Pranav 21 may, 18 saat 14:33 2018-05-21 14:33 tarixində verilir

Uzaq şöbənin adı xüsusi simvollarla başlayırsa, checkout əmrində tək tirnoqlardan istifadə etməlisiniz, əks halda gediş etdiyiniz şöbəni bilməyəcəksiniz.

Məsələn, #9773 adlı bir kənar şöbənin çıxarılmasına çalışdım amma əmr düzgün işləməyib, aşağıda göstərildiyi kimi:

2019

07 нояб. cavab 07 İyul Ulysses Alves verilir . 2018-11-07 14:17 '18 at 2:17 pm 2018-11-07 14:17

etiketləri ilə bağlı digər suallar və ya bir sual verin