Kaip galiu lengvai siųsti vietinį „Git“ filialą į nuotolinę prieigą kitokiu pavadinimu?

Man buvo įdomu, ar yra paprastas būdas spustelėti ir rodyti vietinį filialą su nuotoliniu filialu, kurio pavadinimas yra kitoks, nenurodant abiejų pavadinimų.

Pavyzdžiui:

 $ git clone myrepo.git $ git checkout -b newb $ ... $ git commit -m "Some change" $ git push origin newb:remote_branch_name 

Dabar, jei kas nors atnaujina pavadinimą „remote_branch_name“, galiu:

 $ git pull 

Ir viskas derinama / nukreipiama. Tačiau, jei atlieku pakeitimus savo vietiniame „newb“, negaliu:

 $ git push 

Vietoj to turiu:

 % git push origin newb:remote_branch_name 

Atrodo šiek tiek kvailas. Jei „ git-pull naudoja „ git-config branch.newb.merge kad išsiaiškintumėte, kur jį patraukti, kodėl negalite „ git-push turėti panašią konfigūravimo parinktį? Ar tai yra geras ženklas, ar turėčiau eiti ilgą kelią?

144
21 апр. nustatė jmacdonagh 21 Bal 2011-04-21 05:19 '11, 5:19, 2011-04-21 05:19
@ 4 atsakymai

Žinoma Paprasčiausiai nustatykite push.default į upstream kad push.default filialus į viršutinius srautus (tai yra tas pats dalykas, kurį pull bus išgautas iš filialo. yra numatytasis „ push.default , matching ).

 git config push.default upstream 

Atkreipkite dėmesį, kad tai anksčiau buvo vadinama tracking ne upstream 1.7.4.2 „Git“, todėl, jei naudojate senesnę „Git“ versiją, naudokite tracking . Pasirinkta „ push.default parinktis buvo įtraukta į „Git 1.6.4“, todėl, jei naudojate senesnę versiją, neturėsite šios parinkties ir turėsite aiškiai nurodyti šaką, kurią norite spustelėti.

79
21 апр. Atsakymas, kurį pateikė Brian Campbell Apr 21 2011-04-21 06:00 '11 6:00 val. 2011-04-21 06:00

Kai atliksite pirmąjį žingsnį, pridėkite -u parinktį :

 git push -u origin my_branch:remote_branch 

Vėlesni paspaudimai eis ten, kur norite.

EDIT:

border=0

Pagal komentarą, jis tik nustato traukimą.

 git branch --set-upstream 

turėtų tai padaryti.

144
21 апр. atsakymą pateikė Adam Dymitruk balandžio 21 d. 2011-04-21 08:44 '11, 8:44, 2011-04-21 08:44

Adomo komanda dabar pasenusi. Galite naudoti:

 git branch --set-upstream-to origin/my_remote_branch my_local_branch 

nustatyti viršų šaką iš my_local_branch į origin/my_remote_branch .

11
28 нояб. atsakymas duotas darbas lapkričio 28 d 2014-11-28 14:22 '14, 14:22 2014-11-28 14:22

Čia yra procesas, kuris dirbo man.

 git clone original-repo-url git remote rename origin upstream git remote add origin new-repo-url 

Dabar jūsų nauja repo bus „kilmė“, o originalus atpirkimas bus „aukštyn“. Patvirtinkite, naudodami git remote -v. („Side notes“: „Upstream“ naudojama norint gauti iš šaltinio repo - siekiant išlaikyti sinchronizuotą vietinę kopiją su projektu, kuriam norite prisidėti - ir šaltinis naudojamas traukti ir spausti, nes galite prisidėti prie savo paties repo).

git push origin master

Dabar jūsų naujasis nuotolinio atpirkimo meistras („Github“) bus sinchronizuojamas su originaliu meistru, tačiau jis neturi jokių funkcijų šakų.

 git rebase upstream/branch-name git push origin master 

„Rebase“ yra protingas susijungimas. Tada spustelėkite dar kartą, kad paleistumėte vedlį, ir pamatysite naujos repo pradžios funkciją kaip pagrindinę funkciją.

Neprivaloma:

 git remote rm upstream git remote add upstream new-repo-url 
0
14 авг. atsakymas pateikiamas urubuz 14 rug . 2015-08-14 21:11 '15 , 21:11 2015-08-14 21:11

Kiti klausimai apie „ žymes „ arba „ Ask a question“