„Git“ apmokėjimas: atnaujinimo keliai yra nesuderinami su perjungimo šakomis

Mano problema susijusi su „ Fatal Git“ klaida perjungiant filialą .

Bandau gauti nuotolinį filialą naudojant komandą

 git checkout -b local-name origin/remote-name 

bet gaunu šį klaidos pranešimą:

mirtinas: „Git“ apmokėjimas: atnaujinimo keliai yra nesuderinami su perjungimo šakomis.
Ar ketinate patikrinti „kilmę / nuotolinį pavadinimą“, kuris negali būti išspręstas kaip įvykdytas?

Jei rankiniu būdu sukuriu filialą, o tada ištraukiu nuotolinį filialą, jis veikia kaip sukurti naują kloną ir patikrinti filialą.

Kodėl jis neveikia, kai saugykloje dirbau?

442
03 июня '09 в 19:16 2009-06-03 19:16 Ikke paprašė birželio 03 '09, 19:16, 2009-06-03 19:16
@ 10 atsakymų

Manau, kad taip atsitinka, kai bandote patikrinti nuotolinį filialą, apie kurį nėra žinoma jūsų vietos git. Pabandykite:

 git remote show origin 

Jei nuotolinis filialas, kurį norite patikrinti, yra skiltyje „Nauji nuotoliniai filialai“, o ne skyriuje „Stebimi nuotoliniai filialai“, pirmiausia turite juos gauti:

 git remote update git fetch 

Dabar jis turėtų veikti:

 git checkout -b local-name origin/remote-name 
720
03 сент. Atsakymą pateikė user167628 Sep 03 2009-09-03 05:52 '09 at 5:52 am 2009-09-03 05:52

Alternatyvi sintaksė

 git fetch origin remote_branch_name:local_branch_name 
141
23 окт. spalio 23 d. 2009-10-23 20:52 '09 ne 20:52 2009-10-23 20:52

Po to, kai aš išbandžiau, ką galėčiau perskaityti šioje temoje, susidūriau su šiuo: nuotolinis filialas nerodomas „git branch -r“

Paaiškėjo, kad mano .git / config failas buvo neteisingas. Po paprasto nustatymo atsirado visi filialai.

Perėjimas nuo

 [remote "origin"] url = http://stash.server.com/scm/EX/project.git fetch = +refs/heads/master:refs/remotes/origin/master 

į

 [remote "origin"] url = http://stash.server.com/scm/EX/project.git fetch = +refs/heads/*:refs/remotes/origin/* 

Ar tai pavyko

40
05 июля '13 в 12:33 2013-07-05 12:33 atsakymą pateikė PålOliver liepos 5 d., 13 val., 12:33 2013-07-05 12:33

Nežinote, ar tai naudinga ar tiksliai atitinka jūsų klausimą, bet jei bandote gauti ir patikrinti tik vieną filialą iš nuotolinio saugyklos, bus vykdomos šios gitų triukų komandos:

 url= << URL TO REPOSITORY >> branch= << BRANCH NAME >> git init git remote add origin $url git fetch origin $branch:origin/$branch git checkout -b $branch --track origin/$branch 
12
23 февр. Atsakymas pateikiamas „ VirtualStaticVoid“ 23 vasaris. 2011-02-23 23:42 '11, 11:42 val. 2011-02-23 23:42

Nė vienas iš pirmiau minėtų neveikė man. Mano situacija šiek tiek skiriasi, mano nuotolinis filialas nėra kilęs . bet kitoje saugykloje.

 git remote add remoterepo GIT_URL.git git fetch remoterepo git checkout -b branchname remoterepo/branchname 

Patarimas: jei kitame git branch -v -a nuotolinio filialo, tai nėra galimybės išbandyti.

Darbas patvirtintas 1.7.5.4

11
11 июля '11 в 23:33 2011-07-11 23:33 atsakymą pateikė Olivier Refalo, liepos 11 d., 11 val. 23:33 2011-07-11 23:33

Dirbo man:

 git fetch 

Kuris ištraukia visas nuorodas į jūsų įrenginį visoms nuotolinio valdymo pulto šakoms. Tada galėčiau padaryti

 git checkout <branchname> 

ir jis puikiai dirbo. Atrodo, kad aukščiausias atsakymas balsavo, bet šiek tiek paprastesnis.

7
26 апр. Atsakyti Matt 26 apr. 2012-04-26 23:38 '12 11:38 PM 2012-04-26 23:38

Tai nėra labai intuityvi, bet tai gerai veikia man ...

  mkdir remote.git  cd remote.git  git init git remote add origin $REPO git fetch origin $BRANCH:refs/remotes/origin/$BRANCH 

Tada paleiskite git filialą - track ...

  git branch --track $BRANCH origin/$BRANCH 
3
19 сент. Atsakymą pateikė Eddie B 19 sep. 2011-09-19 03:34 2011-11-09 03:34 03:34 03:34

Įtariu, kad nėra nuotolinio filialo, pavadinto nuotoliniu pavadinimu, bet netyčia sukūrėte vietinį filialą, pavadintą kilme / nuotoliniu pavadinimu.

Ar įmanoma, kad tam tikru momentu įvedėte:

 git šakos kilmė / nuotolinis pavadinimas

Taigi sukuriamas vietinis filialas su pavadinimo kilme / nuotoliniu pavadinimu? Įveskite šią komandą:

 git checkout origin / nuotolinis pavadinimas

Pamatysite:

 Perjungta į filialą „kilmė / nuotolinis pavadinimas“

tai reiškia, kad tai yra tikrai neteisingai pavadintas vietinis skyrius, arba

 Pastaba: pereinama prie „kilmės / perdirbimo“, kuris nėra vietinis filialas Jei norite sukurti naują filialą, galite tai padaryti (dabar arba vėlesnė), naudodami -b su išrašymo komanda dar kartą.  Pavyzdys:   git checkout -b 

tai reiškia, kad jis yra nuotolinis filialas.

3
23 окт. Don Branson atsakymas spalio 23 d 2009-10-23 21:22 '09, 9:22 val. 2009-10-23 21:22

Po milijono kartų nuskaitymo, vis dar pridėtos konsolės nebuvo rodomos, nors lašai buvo baseine. Pasirodo, kad parinktis - žymės neturėtų būti pažymėtos „ git remote add dėl bet kokios priežasties. Galite rankiniu būdu pašalinti jį iš .git / config, kad git fetch sukurti refs.

1
29 мая '12 в 19:23 2012-05-29 19:23 atsakymas pateikiamas eMPee584 gegužės 29 d., 12 val. 19:23 2012-05-29 19:23

Ar jūsų problema gali būti susijusi su šiuo kitu klausimu „SO tikrinimas“ ?

ty: problema, susijusi su:

  • senoji git versija
  • smalsu tikrinimo sintaksė, kuri turėtų būti: git checkout -b [<new_branch>] [<start_point>] , naudojant [<start_point>] , nurodant įsipareigojimo, kuriam pradėtas naujas filialas, pavadinimą ir 'origin/remote-name' yra ne
    (kadangi git branch palaiko start_point kaip nuotolinio filialo pavadinimą)

Pastaba: tai, ką rašo checkout.sh, yra:

  if test '' != "$newbranch$force$merge" then die "git checkout: updating paths is incompatible with switching branches/forcing$hint" fi 

Tai panaši į git checkout -b [] [remote_branch_name] sintaksę, pervadinant filialą ir iš naujo nustatant naują šakos pradinį tašką, kuris laikomas nesuderinamu.

1
03 июня '09 в 22:31 2009-06-03 22:31 atsakymą pateikė „ VonC“ birželio 03'09 , 10:31 2009-06-03 22:31

Kiti klausimai apie „ žymes arba užduoti klausimą