Kako provjeriti udaljeni git grane?

Netko je kliknuo test pod nazivom grane s git push origin test u zajedničko spremište. Vidim granu s git branch -r .

Sada pokušavam testirati daljinski test grane.

Pokušao sam:

  • git checkout test koji ne radi ništa

  • git checkout origin/test daje * (no branch) . To je zbunjujuće. Kako mogu biti na "bez grana"?

Kako provjeriti udaljeni git grane?

5758
23 нояб. postavila Juri Glass 23. studenog 2009-11-23 17:23 '09 u 17:23 2009-11-23 17:23
@ 26 odgovora

ažuriranje

Yakubov odgovor to zapravo poboljšava. S Git verzijama ≥ 1.6.6 s jednim daljinskim upravljačem možete jednostavno:

 git fetch git checkout test 

Kao što korisnik masukomi bilješke u komentaru, git checkout test neće raditi u modernom git-u ako imate više konzola. U tom slučaju koristite

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

ili stenogram

 git checkout -t <name of remote>/test 

Stari odgovor

Prije nego što možete započeti s lokalnim radom s udaljenom podružnicom, morate ga dobiti, kao što je navedeno u donjim odgovorima.

Da biste dobili podružnicu, samo trebate:

 git fetch origin 

To će vam donijeti sve udaljene grane. Možete vidjeti podružnice dostupne za narudžbu s:

 git branch -v -a 

Sada kada imate udaljene podružnice, morate provjeriti granu koju ste zainteresirani tako što ćete dobiti lokalnu radnu kopiju:

 git checkout -b test origin/test 
7947
23 нояб. Odgovor se daje hallski 23 Nov. 2009-11-23 17:26 '09 u 17:26 2009-11-23 17:26

Sidenote: S modernim Git (> = 1.6.6 ) možete samo koristiti

 git checkout test 

(imajte na umu da je ovo 'test' ne 'origin / test') kako biste izvršili čarobnu DWIM- datoteku i izradili za vas lokalni test 'podružnice' za koji bi upstream bio daljinski trag "origin / test".

border=0

Izlaz * (no branch) u git branch znači da se nalazite u neimenovanoj grani u takozvanom "nepovezanom HEAD" stanju (HEAD se odnosi izravno na urezivanje i nije simbolička veza s nekom lokalnom granom). Ako ste napravili neke naredbe u ovoj neimenovanoj grani, uvijek možete kreirati lokalnu granu s trenutnom urezivanjem:

 git checkout -b test HEAD 
1147
24 нояб. Odgovor Jakuba Narębskog 24. studenog 2009-11-24 03:17 '09 u 3:17 2009-11-24 03:17

U tom slučaju vjerojatno želite stvoriti lokalnu test granu koja prati udaljenu test granu:

 $ git branch test origin/test 

U ranijim verzijama git trebala vam je eksplicitna --track opcija, ali to je sada zadana vrijednost kada --track udaljenu granu.

508
23 нояб. odgovor je dan 23.11. 2009-11-23 17:27 '09 u 17:27 2009-11-23 17:27

Prihvaćeni odgovor ne radi za vas?

Dok je prvi i odabrani odgovor tehnički ispravan, postoji mogućnost da još niste primili sve objekte i veze iz udaljenog spremišta. Ako je tako, dobit ćete sljedeću pogrešku:

 $ git checkout -b remote_branch origin/remote_branch 

fatalno: git checkout: staze ažuriranja nisu kompatibilne s prebacivanjem grana.
Jeste li namjeravali označiti "origin / remote_branch", što se ne može riješiti kao urezivanje?

odluka

Ako primite ovu poruku, najprije morate izraditi git fetch origin , gdje je origin ime udaljenog repozitorija prije pokretanja git checkout remote_branch . Ovdje je cjelovit primjer s odgovorima:

 $ 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' 

Kao što možete vidjeti, kada pokrenemo git fetch origin ekstrahiranih udaljenih grana, još nismo konfigurirali praćenje na našem lokalnom računalu. Odavde, budući da sada imamo vezu s udaljenom granom, možemo jednostavno pokrenuti git checkout remote_branch i dobiti prednosti daljinskog praćenja.

421
07 дек. Odgovor dao Corey Ballou 07. \ T 2012-12-07 23:52 '12 u 23:52 2012-12-07 23:52

Pokušao sam gore navedeno rješenje, ali to nije uspjelo. Isprobajte, radi:

 git fetch origin 'remote_branch':'local_branch_name' 

To će dovesti do udaljene grane i stvoriti novu lokalnu granu (ako već ne postoji) s imenom local_branch_name i pratiti je izbrisano.

208
18 окт. odgovor dao Sahil kalra 18. 2013-10-18 08:55 '13 u 8:55 2013-10-18 08:55

To će biti DWIM za neimenovani udaljeni naziv ( dokumentacija ):

 $ git checkout -t remote_name/remote_branch 

Da biste dodali novi daljinski upravljač, učinite sljedeće:

 $ git remote add remote_name location_of_remote $ git fetch remote_name 

Prvi govori Git udaljenom pristupu, drugi dobiva izvršenje.

104
28 апр. odgovorio je tacaswell 28 Apr 2012-04-28 01:37 '12 u 1:37 2012-04-28 01:37

Upotreba:

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

Drugi odgovori ne funkcioniraju s modernim Gitom u mom benignom slučaju. Možda ćete prvo morati migrirati ako je udaljena grana nova, ali nisam provjerio ovaj slučaj.

98
21 февр. Odgovor daje matanster 21. veljače. 2016-02-21 13:58 '16 u 13:58 2016-02-21 13:58

Pa , odgovor je jednostavan ... U osnovi vidite granu, ali još nemate lokalnu kopiju! ...

Morate fetch granu ...

Možete jednostavno primiti, a zatim naručiti u grani pomoću naredbe u jednom retku da biste to učinili:

 git fetch  git checkout test 

Izradio sam i sliku ispod da biste mogli podijeliti svoje razlike, vidjeti kako fetch rad i kako ga pull :

2019

05 сент. Odgovor je dat Alireza 05 Sep. 2017-09-05 17:20 '17 u 17:20 2017-09-05 17:20

Da biste klonirali spremište Git, pokrenite:

 git clone <either ssh url /http url> 

Gornja naredba provjerava sve grane, ali samo će se master grana inicijalizirati. Ako želite provjeriti druge grane, slijedite ove korake:

 git checkout -t origin/future_branch (for example) 

Ova naredba provjerava udaljenu granu, a ime vaše lokalne podružnice je isto kao i udaljena grana.

Ako želite poništiti naziv lokalne podružnice na blagajni:

 git checkout -t -b enhancement origin/future_branch 

Sada je naziv vaše lokalne podružnice enhancement , ali ime udaljene grane je future_branch .

dokumentacija

48
21 янв. odgovor je dat Madhan Ayyasamy 21. siječnja 2013-01-21 13:04 '13 u 13:04 2013-01-21 13:04

Možete pokušati

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

ili

 git fetch git checkout -b local_branch_name origin/branch_name 
31
24 марта '14 в 16:11 2014-03-24 16:11 odgovor je dat uma 24. ožujka '14 u 16:11 2014-03-24 16:11

Prvo trebate učiniti:

git fetch # Ako ne znate ime grane

 git fetch origin branch_name 

Drugo, možete provjeriti udaljenu granu na vašoj lokalnoj:

 git checkout -b branch_name origin/branch_name 

-b će stvoriti novu granu u navedenom imenu iz odabrane udaljene grane.

27
18 мая '17 в 16:55 2017-05-18 16:55 Odgovor daje Mohideen ibn Mohammed 18. svibnja 2006. u 16:55 2017-05-18 16:55

naredbe

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

su jednaki

  git fetch --all 

i onda

  git checkout -b fixes_for_dev origin/development 

Oba će stvoriti latest fixes_for_dev iz development

25
21 апр. odgovor je dao sreekumar 21. travnja 2016-04-21 22:10 '16 u 22:10 2016-04-21 22:10

Koristim sljedeću naredbu:

 git checkout --track origin/other_remote_branch 
23
06 сент. odgovor je dan priyankvex 06 sep . 2017-09-06 17:41 '17 u 17:41 2017-09-06 17:41

Ako je ogranak na nečemu drugome od udaljenog origin , volim raditi sljedeće:

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

To će provjeriti next granu na udaljenom upstream poslužitelju u lokalnoj grani nazvanoj second/next . To znači da ako već imate lokalnu podružnicu koja se zove sljedeća, neće doći do sukoba.

 $ git branch -a * second/next remotes/origin/next remotes/upstream/next 
22
01 марта '13 в 13:00 2013-03-01 13:00 Odgovor je dao Kris 1. ožujka 2013. u 13:00 sati 2013-03-01 13:00

git fetch git checkout your-branch-name

15
26 марта '14 в 10:00 2014-03-26 10:00 odgovor je dat Inder Kumar Rathore 26. ožujka 2014. u 10:00 2014-03-26 10:00

git branch -r kaže da je naziv objekta nevažeći jer ime te grane nije na popisu lokalnih Git grana. Ažurirajte popis lokalne podružnice iz izvora s:

 git remote update 

Zatim pokušajte ponovno provjeriti udaljenu granu.

Uspjelo mi je.

Vjerujem da git fetch privlači sve udaljene grane, koje izvorni plakat ne želi.

15
06 июня '13 в 15:21 2013-06-06 15:21 odgovor je dao webdevguy 6. lipnja '13 u 15:21 2013-06-06 15:21

nijedan od tih odgovora nije radio za mene. radilo je:

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

14
10 июля '18 в 5:11 2018-07-10 05:11 Odgovor je dao brianyang 10. srpnja u 5:11 sati 2018-07-10 05:11

Naredba git remote show <origin name> prikazat će popis svih grana (uključujući i ne-praćene grane). Tada možete pronaći naziv udaljene grane koju želite izdvojiti.

primjer:

 $ git remote show origin 

Koristite ove korake za ekstrahiranje udaljenih grana:

 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) 

primjer:

 $ git fetch origin test:test $ git checkout test 
11
07 янв. Odgovor je dao Suchan 07. siječnja 2018-01-07 16:12 '18 u 16:12 2018-01-07 16:12

Drugi momci i djevojke daju rješenja, ali možda vam mogu reći zašto.

git check test koji ne radi ništa

Ne podudara se s time da doesn't work , pa pretpostavljam kada unesete "git checkout test" u svoj terminal i pritisnete tipku enter, poruka se ne pojavljuje i ne dolazi do pogreške. Jesam li u pravu

Ako je odgovor da, mogu vam reći razlog.

Razlog tome je što u vašem stablu postoji datoteka (ili mapa) pod nazivom "test".

Kada je git checkout xxx shvatio,

  • git najprije pogleda xxx kao ime grane, ali nema ispita pod nazivom grane.
  • Tada Git misli da je xxx put, i na sreću (ili, nažalost) postoji datoteka koja se zove test. Stoga, git checkout xxx znači otkazati bilo koju izmjenu u xxx datoteci.
  • Ako nema datoteke s imenom xxx , Git će pokušati stvoriti xxx prema nekim pravilima. Jedno pravilo je stvoriti granu s imenom xxx , ako postoje remotes/origin/xxx .
8
10 июля '17 в 10:45 2017-07-10 10:45 odgovor je dao starac 10. srpnja '17. u 10:45 2017-07-10 10:45

Zaglavio sam se u situaciji u kojoj se error: pathspec 'desired-branch' did not match any file(s) known to git. za sve gore navedene ponude. Ja sam na git verziji 1.8.3.1.

Tako mi je pomoglo :

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

Objašnjenje za to je da sam primijetio da je prilikom preuzimanja udaljene grane odabrana u FETCH_HEAD:

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

Samo pokrenite git checkout s imenom udaljene grane. Git će automatski stvoriti lokalnu granu koja prati udaljeno:

 git fetch git checkout test 

Međutim, ako se ovaj naziv grane nalazi u više konzola, neće raditi, jer Git ne zna što treba koristiti. U tom slučaju možete upotrijebiti:

 git checkout --track origin/test 

ili

 git checkout -b test origin/test 

U 2.19, Git je ispitao konfiguraciju checkout.defaultRemote , u kojoj se pri uklanjanju takvih nejasnoća prikazuje zadana vrijednost daljinskog upravljača.

6
13 сент. odgovor je dao Eugene Yarmash na 13. rujna . 2018-09-13 15:21 '18 u 15:21 2018-09-13 15:21

Da biste dobili novostvorene grane

 git fetch 

Prebacite se na drugu granu

 git checkout BranchName 
6
15 марта '18 в 11:49 2018-03-15 11:49 odgovor je dao Hasib Kamal 15. ožujka u 11:49 sati 2018-03-15 11:49

Možete početi pratiti sve izbrisane grane sa sljedećim bash skriptom:

 #!/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 

Ovdje je i verzija s jednom vrstom:

 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 авг. Odgovor je dao OzzyCzech 11 aug. 2017-08-11 15:06 '17 u 15:06 2017-08-11 15:06

Slijedite ovu naredbu da biste stvorili praznu mapu. Unesite ga i koristite sljedeću naredbu:

 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 янв. odgovor je dao Mehedi Hasan 1. siječnja 2016-01-01 13:31 '16 u 13:31 2016-01-01 13:31

Uzmite porijeklo i provjerite granu.

 git fetch origin  git checkout branch_name 
1
21 мая '18 в 14:33 2018-05-21 14:33 odgovor je dat Pranav 21. svibnja '18 u 14:33 2018-05-21 14:33

Ako ime udaljene grane započinje s posebnim znakovima, trebate koristiti jednostruke navodnike u naredbi za naplatu, inače git neće znati koja grana govorite.

Na primjer, pokušao sam izdvojiti udaljenu granu pod nazivom #9773 ali naredba nije ispravno funkcionirala, kao što je prikazano na slici ispod:

2019

07 нояб. odgovor je dat Ulysses Alves 07 nov. 2018-11-07 14:17 '18 u 14:17 sati 2018-11-07 14:17

Ostala pitanja o oznakama ili postavi pitanje