Kaip sukurti nuotolinį git filialą?

Aš sukūriau vietinį padalinį, kurį noriu „stumti“ į viršų. ngn-wiki.ru turi panašų klausimą, kaip sekti naujai sukurtą nuotolinį filialą.

Tačiau mano darbo eiga yra šiek tiek kitokia. Pirma Noriu sukurti vietinį padalinį, o tik tada, kai esu patenkintas, noriu pasidalinti savo filialu.

  • Kaip tai padaryti? (mano „Google“ paieškose neatrodė nieko, kas būtų sukurta).
  • Kaip galiu pasakyti savo kolegoms, kad išeitų iš ankstesnės saugyklos?

UPDATE Su Git 2.0 yra paprastesnis atsakymas , kurį parašiau toliau: ngn-wiki.ru.site/questions/296 / ...

2467
05 окт. Nustatė Jesper Rønn-Jensen , spalio 5 d 2009-10-05 12:21 '09, 12:21, 2009-10-05 12:21
@ 17 atsakymų

Paprastas „Git 2.0+“ sprendimas:

Nuo Git 2.0 elgesys supaprastintas :

push.default = current galite konfigūruoti kaip push.default = current , kad gyvenimas taptų paprastesnis:

Taip pridėjau, dabar galiu tiesiog stumti naują šaką į viršų

 $ git push -u 

-u seka tolimąjį filialą su tuo pačiu pavadinimu. Ne, su šia konfigūracija, jūs automatiškai atspėti nuotolinę nuorodą į „Git“ stumti. Iš git.config dokumentacijos :

push.default

Apibrėžia, kad bus atliktas „Git“ veiksmas, nebent būtų aiškiai nurodyta refspec.

push.default = current - spustelėkite esamą filialą, kad atnaujintumėte filialą naudojant tą patį pavadinimą priimančioje pusėje. Veikia tiek centrinėje, tiek ne centrinėje darbo eigoje.

Man tai yra geras mano „Git“ darbo eigos supaprastinimas. Konfigūracijos konfigūravimo metu „įprastas“ naudojimo atvejis atliekamas, kai pridedate filialą vietoje ir norite jį sukurti nuotoliniu būdu. Be to, galiu taip pat lengvai sukurti vietinius filialus iš nuotolinio valdymo pultelio, tiesiog atlikdamas „ git co remote_branch_name (o ne naudojant „ --set-upstream-to flag“).

Žinau šį klausimą, o priimti atsakymai yra gana seni, tačiau elgesys pasikeitė, todėl dabar yra konfigūravimo parinkčių, kurios supaprastina jūsų darbo eigą.

Jei norite pridėti „Git“ prie pasaulinės konfigūracijos, paleiskite ją komandų eilutėje:

 $ git config --global push.default current 
192
28 нояб. Atsakymą pateikė Jesper Rønn-Jensen lapkričio 28 d. 2014-11-28 12:46 '14, 12:46 2014-11-28 12:46

Pirmiausia susikurkite savo filialą:

 git checkout -b <branch-name> # Create a new branch and check it out 

Nuotolinis filialas automatiškai sukuriamas spustelėjus jį nuotoliniame serveryje. Todėl, kai jaučiatės pasiruošę tai padaryti, galite tiesiog:

 git push <remote-name> <branch-name> 

Kai <remote-name> paprastai <remote-name> origin , pavadinimas, kurį suteikia ištrintas klonas. Tada jūsų kolegos paprasčiausiai ištrauktų šį filialą, ir jis automatiškai bus sukurtas vietoje.

Atkreipkite dėmesį, kad oficialus formatas yra:

border=0
 git push <remote-name> <local-branch-name>:<remote-branch-name> 

Bet kai jūs paliekate vieną, tai daroma prielaida, kad abi šakos yra tos pačios. Tai pasakę kaip atsargų žodį, nedarykite kritinės klaidos, kai nurodote tik :<remote-branch-name> (su dvitaškiu) arba nuotolinio filialo bus ištrinti!

Jei norite, kad vėlesnis git pull žinotų, ką daryti, galite naudoti:

 git push --set-upstream <remote-name> <local-branch-name> 

Kaip aprašyta toliau, parinktis „ --set-upstream nustato filialą prieš srovę:

Kiekvienam filialui, kuris yra esamas arba sėkmingai paspaudžiamas, pridėtas prieš srovę (stebėjimas), naudojamas argumentas yra mažesnis už git-pull (1) ir kitas komandas.

3020
05 окт. Atsakyti Ikke 05 oct. 2009-10-05 12:29 '09, 12:29, 2009-10-05 12:29

Pirmiausia turite sukurti vietinį skyrių.

 git checkout -b your_branch 

Po to galite dirbti savo filialo vietoje, kai esate pasiruošę bendrai naudoti filialą, spustelėkite jį. Ši komanda spaudžia filialą į nuotolinio saugyklos šaltinį ir seka ją.

 git push -u origin your_branch 

Draugai gali pasiekti jūsų filialą:

 git fetch git checkout origin/your_branch 

Jūs galite tęsti darbą filiale ir spustelėti, kai tik norite, neperduodami argumentų, kad pasiektumėte stumti (be argumentų, „git push“ paspaudžia vedlį į nuotolinį vedlį, jūsų „filialą“, kad galėtumėte nutolinti savo padalinį ir pan.)

 git push 

Draugai gali spustelėti savo filialą, įsipareigoti ir tada aiškiai spustelėti

 ... work ... git commit ... work ... git commit git push origin HEAD:refs/heads/your_branch 

Arba sekite filialą, kad išvengtumėte „git push“ argumentų

 git checkout --track -b your_branch origin/your_branch ... work ... git commit ... work ... git commit git push 
742
26 июля '11 в 4:09 2011-07-26 04:09 atsakymas pateikiamas dseminara liepos 26 d. 11 d. 4:09 2011-07-26 04:09

Kaip nurodyta ankstesniuose atsakymuose,

 git push <remote-name> <local-branch-name>:<remote-branch-name> 

pakanka vietiniam filialui.

Naudodami šią komandą, jūsų kolegos gali rodyti visus nuotolinius filialus (įskaitant naujus):

 git remote update 

Tada, norėdami pakeisti filialą, normalus srautas:

 git checkout -b <local-branch-name> <remote-name>/<remote-branch-name> 
62
27 дек. Lucian gruodžio 27 d. atsakymas 2011-12-27 17:12 '12, 12:12 pm, 2011-12-27 17:12

Sukurkite naują filialą vietoje pagal dabartinį filialą:

 git checkout -b newbranch 

Atlikite bet kokius pakeitimus, kaip įprasta. Tada stumkite jį į viršų:

 git push -u origin HEAD 

Tai yra nuoroda, skirta dabartiniam filialui perkelti į šaką, turinčią tą patį pavadinimą, ir jį stebėti, kad ateityje nereikėtų nurodyti origin HEAD .

39
24 февр. Atsakymą pateikė Zenexer 24 vasaris. 2014-02-24 17:58 '14, 17:58, 2014-02-24 17:58

Jei norite sukurti nuotolinį filialą be vietos, galite tai padaryti taip:

 git push origin HEAD:refs/heads/foo 

Jis verčia viską, ką HEAD turi išjungti foo, kuris nebuvo nuotolinio valdymo pulte.

27
25 нояб. Atsakymas suteiktas Tassadar . 2015-11-25 18:29 '15, 18:29, 2015-11-25 18:29

Pirmiausia susikurkite filialą vietoje:

 git checkout -b your_branch 

Ir tada sukurti filialą nuotoliniu būdu:

 git push --set-upstream origin your_branch 

Pastaba Tai veikia su git versijomis:

 $ git --version git version 2.3.0 

Hooray!

21
22 апр. Ipegasus balandžio 22 d. Atsakymas 2015-04-22 02:43 '15 at 2:43 2015-04-22 02:43

Jei norite sukurti filialą iš dabartinio filialo

 git checkout -b {your_local_branch_name} 

jums reikia filialo iš nuotolinio filialo, galite pabandyti

 git checkout -b {your_local_branch_name} origin/<remote_branch_name> 

Jei atlikote pakeitimus, galite pridėti failą.

 git add -A or git add <each_file_names> 

Tada įsipareigokite vietoje.

 git commit -m 'your commit message' 

Jei norite spustelėti nuotolinį repo

 git push -u origin <your_local_branch_name> 

Visi kartu

 git checkout -b bug_fixes 

arba Jei norite sukurti filialą iš nuotolinio filialo, tarkim, plėtra

git checkout -b bug_fixes kilmė / plėtra

Galite paspausti ant filialo nuotoliniam atpirkimui

 git push -u origin **bug_fixes** 

Bet kuriuo metu, kai norite atnaujinti filialą iš bet kurios kitos šakos, pasakykite vedlį .

git pull origin master .

17
01 мая '16 в 9:12 2016-05-01 09:12 atsakymas pateikiamas sreekumar 01 gegužės 16 d. 9:12 2016-05-01 09:12

Sukurkite filialą vietiniame kompiuteryje ir įgalinkite šį filialą:

 $ git checkout -b [name_of_your_new_branch] 

Spustelėkite filialą „github“:

 $ git push origin [name_of_your_new_branch] 

Jei norite kažką pataisyti savo šakoje, įsitikinkite, kad esate savo filiale.

Galite matyti visus filialus, sukurtus su:

 $ git branch 

Kas bus rodoma:

 * approval_messages master master_clean 

Įtraukite naują nuotolinį ryšį savo filialui:

 $ git remote add [name_of_your_remote] 

Spustelėkite pakeitimus, padarytus iš jūsų įsipareigojimo temoje:

 $ git push origin [name_of_your_remote] 

Atnaujinkite filialą, kai atnaujinamas oficialios saugyklos filialas:

 $ git fetch [name_of_your_remote] 

Tada jums reikia kreiptis dėl pakeitimų sujungimo, jei jūsų filialas yra sukurtas iš plėtros, turite atlikti:

 $ git merge [name_of_your_remote]/develop 

Ištrinkite filialą vietinėje failų sistemoje:

 $ git branch -d [name_of_your_new_branch] 

Jei norite priversti vietinį filialą failų sistemoje:

 $ git branch -d [name_of_your_new_branch] 

Ištrinkite filialą „github“:

 $ git push origin :[name_of_your_new_branch] 

Čia yra visa informacija.

Kitas esamas projektas

15
27 мая '16 в 14:39 2016-05-27 14:39 Atsakymas suteikiamas Numan Turkeri gegužės 27 d. 16:39 2016-05-27 14:39

Lengviausias sprendimas ... Drumm Roll. git versija 2.10.1 (Apple Git -78)

 1) git checkout -b localBranchNameThatDoesNotExistInRemote 2) Do your changes , and go a git commit 3) git push origin localBranchNameThatDoesNotExistInRemote --force 

NB - filialas, kurį šiuo metu naudojate vietiniame kompiuteryje, ir nuotolinis neegzistuojantis filialas, kuriame bandote paspausti, turi turėti tą patį pavadinimą .

10
18 марта '17 в 9:23 2017-03-18 09:23 atsakymas suteiktas sirdis Kovo 18, 17 d., 9:23 2017-03-18 09:23

Dabar su git galite tiesiog įvesti, kai esate teisingoje šakoje.

git push --set-upstream origin <remote-branch-name >

ir git jums sukuria kilmės šaką.

8
27 окт. atsakymą pateikė Maurizio Brioschi, spalio 27 d. 2014-10-27 20:05 „14, 20:05 2014-10-27 20:05

Žinau, kad šis klausimas yra gerai atsakytas, bet aš tik norėjau išvardyti veiksmus, kurių aš imsiu, kad sukurtume naują „myNewBranch“ filialą ir spragtelėtų ant nuotolinio („mano kilmės“) ir nustatytumėte stebėjimą. Apsvarstykite šią „tl; dr“ versiją :)

 # create new branch and checkout that branch git checkout -b myNewBranch # now push branch to remote git push origin myNewBranch # set up the new branch to track remote branch from origin git branch --set-upstream-to=origin/myNewBranch myNewBranch 
7
23 окт. atsakymas duotas sufinawaz 23 d. 2014-10-23 17:09 '14 at 17:09 pm 2014-10-23 17:09

Tiesiog norėjau pridėti, kad:

 git checkout -b {branchName} 

Sukuria naują filialą, jis taip pat patikrina, ar filialas / tampa dabartiniu filialu. Jei dėl kokių nors priežasčių norite išjungti filialą, bet nepadarykite jos dabartiniu filialu, tada naudosite šią komandą:

 git branch {branchName} 

Pirmoje komandoje „checkout“ nurodo, kad jūsų filialas yra jūsų filialas, o „-b“ reiškia: šis filialas dar neegzistuoja.

6
30 марта '15 в 17:02 2015-03-30 17:02 Atsakymą pateikė Brian Sachetta kovo 15 d. 15 val. 17:02 2015-03-30 17:02

Vietos filialo sukūrimas iš esamų filialų (galbūt meistras / plėtra / bet kuri kita).

git checkout -b dir_name

Paspauskite šį mygtuką nuotolinio valdymo pulte.

git push -u duomenų_vardas local_branch_name: remote_branch_name

Čia

  • -u: įdiegia „upstream“ filialą
  • dalname: git nustato „šaltinio“ numatytąjį pavadinimą kuriant saugyklą. Tačiau tai galima pakeisti į kitą savavališką pavadinimą.
  • local_branch_name: vietinio filialo, kurį reikia paspausti, pavadinimas.
  • remote_branch_name: nuotolinio filialo, kurį norime sukurti nuotoliniame kompiuteryje, pavadinimas.

Jei ištrinsime vietinius ir nuotolinius filialų pavadinimus, jis turės formatą

„git push -u data_name memory_name“

Tai pašalins vietinį filialą, kurio pavadinimas yra toks pat kaip ir filialo pavadinimas. Vietinis filialas taip pat stebės nuotolinį filialą.

5
15 февр. Atsakymą pateikė iosCurator 15 vasaris. 2017-02-15 09:57 '17 at 9:57 2017-02-15 09:57

Kaip padaryti per šaltinių medį

  1: Open SourceTree, click on Repository -> Checkout 2 :Click on Create New Branch 3: Select branch where from you want to get code for new branch 4: Give your branch name 5: Push the branch (by click on Push button) 
4
21 июля '15 в 14:27 2015-07-21 14:27 atsakymą pateikė Monis Majeed, liepos 21 d. 15, 14:27 2015-07-21 14:27

git push -u <remote-name> <branch-name> neveikia, jei naujai sukurta filialas nėra sukurtas iš to paties repo, t.y. jei nesukūrėte naujo filialo su git checkout -b new_branch , tada tai neveiks.

Pavyzdžiui, vietoje klonavo dvi skirtingas saugyklas, ir turėjau nukopijuoti repo2 / branch1 į repo1 /, ir tada taip pat spustelėkite jį.

Ši nuoroda padėjo nukreipti savo vietinį filialą (klonuotą iš kito repo) į mano nuotolinį atpirkimą:

3
25 февр. atsakymas duotas skaldytų kojų 25 vasario mėn 2014-02-25 00:38 '14 at 0:38 2014-02-25 00:38

Štai kaip tai darote užtemdant per Egit.

1) Eikite į „Git Repository Exploring“ peržiūrą ir paaiškinkite git projektą, kuriam norite sukurti filialą. Skiltyje „Sėlenos“ → „Vietos“ pasirinkite filialą, kuriam norite sukurti filialą (mano atveju, pasirinkau kapitoną. Jei norite, galite pasirinkti kitą kitą šaką), tada dešiniuoju pelės mygtuku spustelėkite ir pasirinkite parinktį Sukurti filialą. ir pasirinkite šio projekto parinktį ir spustelėkite baigimo mygtuką.

2) Dabar iš tiriamojo projekto pasirinkite projektą .. dešiniuoju pelės mygtuku spustelėkite Komandos → Push filialas.

Bus sukurtas naujas nuotolinis filialas. Filialo pavadinimą galite nurodyti savo kolegoms, kad jie galėtų jį ištraukti.

3
01 февр. atsakymas suteiktas user2225713 01 vasaris 2014-02-01 02:46 '14 at 2:46 2014-02-01 02:46

Kiti klausimai apie arba Užduoti klausimą