Filialas iš ankstesnio įsipareigojimo naudojant git

Jei aš padariau, kaip persijungti iš n-3?

Matau kiekvieno įsipareigojimo maišą.

1372
12 мая '10 в 10:21 2010-05-12 10:21 dole doug yra nustatytas gegužės 12, 10, 10: 21 val. 2010-05-12 10:21
@ 15 atsakymų

Filialą galite sukurti per hash:

 git branch branchname <sha1-of-commit> 

Arba naudokite simbolinę nuorodą:

 git branch branchname HEAD~3 

Jei norite sukurti filialą kurdami jį, naudokite

 git checkout -b branchname <sha1-of-commit or HEAD~3> 
1931 m
12 мая '10 в 10:24 2010-05-12 10:24 CB Bailey atsakymas gegužės 12 d. 10 val. 10:24 2010-05-12 10:24

Jei norite tai padaryti „github.com“:

border=0
  1. Eikite į savo projektą.
  2. Spustelėkite „įsipareigoja“.
  3. Paspauskite <> („Žiūrėkite saugyklą šiame istorijos taške“) priskyrime, iš kurio norite suskirstyti.
  4. Viršutiniame kairiajame kampe spustelėkite „medis: xxxxxx“. Tiesiog žemiau kalbos statistikos gausite parinktį „Rasti arba sukurti filialą“ (tiesiog įveskite naują filialo pavadinimą) 2019
192
09 авг. atsakymą pateikė „ OneSolitaryNoob 09“. 2013-08-09 01:08 '13, 01:08 2013-08-09 01:08

Magija gali būti atliekama naudojant git reset .

  • Sukurkite naują filialą ir perjunkite į jį (taigi čia bus saugomi visi paskutiniai įsipareigojimai)

    git checkout -b your_new_branch

  • Grįžkite į ankstesnę darbo šaką (tarkime, ji yra šeimininkė)

    git checkout master

  • Pašalinkite paskutines x fiksacijas, palaikykite šeimininką švarią

    git reset --hard HEAD~x # in your case, x = 3

Nuo to momento visi naujausi įsipareigojimai x yra tik naujuose filialuose, o ne ankstesniame darbiniame skyriuje (kapitonas).

60
03 авг. atsakymą pateikė Jing Li 03 rug. 2015-08-03 12:04 '15 , 12:04 2015-08-03 12:04

Jei nežinote, su kuriuo įsipareigojimu norite prisijungti prie filialo, galite patikrinti pataisą ir patikrinti savo kodą (žr. Šaltinį, kompiliuokite, patikrinkite)

 git checkout <sha1-of-commit> 

kai tik pamatysite, kad įrašą norite razvetkit, galite tai padaryti iš fiksavimo viduje (ty ne grįžti į pirmąjį kapitoną), tiesiog sukurkite filialą įprastu būdu:

 git checkout -b <branch_name> 
59
10 февр. atsakymas pateikiamas 10 vasario mėn. 2014-02-10 19:43 '14, 19:43, 2014-02-10 19:43
 git checkout -b <branch-name> <sha1-of-commit> 
18
11 июля '17 в 10:11 2017-07-11 10:11 Atsakymą pateikė Tyler Long 11 liepa 17, 10:11 2017-07-11 10:11

Greitas būdas tai padaryti jūsų „Github“ registre:

  • Raskite konkrečią atkarpą iš siūlų.
  • Šalia „SHA ID“ spustelėkite „Repo apžvalga šiame istorijos taške“
  • Čia galite sukurti naują temą iš šio įsipareigojimo. 2019
14 янв. atsakymą pateikė Vatsal Parekh 14 jan. 2017-01-14 20:51 '17 at 8:51 pm 2017-01-14 20:51

Norėdami tai padaryti „Eclipse“:

  • Eikite į perspektyvą „Git Repository Exploring“.
  • Išskleiskite „žymes“ ir pasirinkite įsipareigojimą, iš kurio norite sukurti filialą.
  • Dešiniuoju pelės mygtuku spustelėkite ant įsipareigojimo ir pasirinkite „Sukurti filialą“.
  • Nurodykite filialo pavadinimą.

Tai jums sukurs vietinį padalinį. Tada, kai pateikiate pakeitimus, jūsų filialas bus išsiųstas į nuotolinį serverį.

4
17 мая '13 в 15:03 2013-05-17 15:03 atsakymas duodamas Saurabhcdt gegužės 17 d., 13 val. 15:03 2013-05-17 15:03

Tai galite padaryti Stash.

  • Paspauskite įsipareigoti
  • Viršutiniame dešiniajame ekrano kampe spustelėkite „Pažymėti šį įsipareigojimą“
  • Tada galite sukurti naują filialą iš tik sukurtos žymės.
4
18 янв. David Ruan atsakymas, sausio 18 d 2017-01-18 20:20 '17, 08:20 pm 2017-01-18 20:20

Puikus klausimas: kaip jūs tai suprantate, naudodami parametrą --help ? Pabandykime tai:

 git branch --help 

Mes matome šią išvadą:

 NAME git-branch - List, create, or delete branches SYNOPSIS git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>...] git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] git branch --unset-upstream [<branchname>] git branch (-m | -M) [<oldbranch>] <newbranch> git branch (-d | -D) [-r] <branchname>... git branch --edit-description [<branchname>] 

Gobbledegook.

Toliau pateiktame tekste ieškokite žodžio „įsipareigoti“. Mes jį randame:

  <start-point> The new branch head will point to this commit. It may be given as a branch name, a commit-id, or a tag. If this option is omitted, the current HEAD will be used instead. 

Mes gauname kažkur!

Dabar sutelkkite dėmesį į šią gobbledegook liniją:

 git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] 

Pridėkite šią informaciją:

 git branch <branchname> [<start-point>] 

Ir padaryta.

3
19 июля '16 в 19:35 2016-07-19 19:35 atsakymas pateiktas „ Purplejacket“ liepos 19, 16 dienomis 19:35 2016-07-19 19:35

Galėčiau tai padaryti taip:

 git branch new_branch_name 'git log -n 1 --skip 3 --format=%H' 

Kur reikia įvesti praleidimo vertę. 0 - paskutinis, 1 - ankstesnis, 2 - įsipareigoti prieš tai ir tt

3
01 февр. Atsakymą pateikė Mike Graf 01 vasaris. 2013-02-01 00:36 '13 prie 0:36 2013-02-01 00:36

Štai ką aš padariau:

 C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b Switched to a new branch 'responsivenavigation' C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch master * responsivenavigation 

Šiuo atveju 8a75b001096536b3216022484af3026aa9c7bb5b buvo ir senas įsipareigojimas priklausė master filialui.

1
14 июня '18 в 11:23 2018-06-14 11:23 Atsakymą davė Jaime Montoya birželio 14 d. 18 val. 11:23. 2018-06-14 11:23

Galite sukurti filialą naudodami šio įsipareigojimo hash

 git branch branchname <sha1 of the commit> 
1
15 июля '16 в 17:23 2016-07-15 17:23 atsakymą pateikė vartotojo3022012 liepos 15 d. 16:17 17:23 2016-07-15 17:23

Eikite į konkretų įvykį iš git saugyklos

Kartais, kai dirbate su git saugykla, norite grįžti prie konkretaus įsipareigojimo (peržiūros), kad gautumėte momentinį jūsų projekto vaizdą tam tikru laiku. Norėdami tai padaryti, jums reikia įsipareigojimo SHA-1 maišos, kurią galite lengvai rasti, patikrindami žurnalą su komanda:

 git log --abbrev-commit --pretty=oneline 

kuris suteiks jums kompaktišką visų įvykių sąrašą ir trumpą SHA-1 versijos versiją.

Dabar, kai žinote, kokio įsipareigojimo hash, į kurį norite eiti, galite naudoti vieną iš šių dviejų komandų:

 git checkout HASH 

arba

 git reset --hard HASH 

patikrinkite

git checkout <commit> <paths>

Pasako „git“ pakeisti dabartinę būsenų būseną su jų būsena šiame įvykyje. Keliai gali būti failai ar katalogai.

Jei filialas nenurodytas, git priima HEAD įsipareigojimą.

 git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'. 

Jei kelias nenurodytas, „git“ perkelia HEAD į šį įvykį (taip pakeisdamas jūsų sėdi ir dirbdamas).

 git checkout branch //means switching branches. 

atstatyti

 git reset <commit> //re-sets the current pointer to the given commit. 

Jei esate filiale (kaip paprastai turėtų būti), HEAD ir šis filialas persikelia į įsipareigojimus.

Jei esate neįgalios HEAD būsenos, git reset tik perkelia HEAD . Norėdami atstatyti filialą, pirmiausia patikrinkite jį.

Jei norite daugiau sužinoti apie skirtumą tarp git reset ir git checkout, rekomenduojame perskaityti oficialų „git“ tinklaraštį .

0
20 июля '18 в 18:47 2018-07-20 18:47 Atsakymą pateikė Lyes CHIOUKH liepos 20 d., 18 val. 18:47 2018-07-20 18:47
28 авг. atsakymą pateikė user3070485 28 rug . 2018-08-28 15:04 '18, 3:04 val. 2018-08-28 15:04

Tiesiog paleiskite:

 git checkout -b branch-name <commit> 

Pavyzdžiui:

 git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8 

checkout komanda su parinktimi -b sukurs naują filialą ir perjungs jus.

0
11 янв. atsakymas d1jhoni1b sausio 11 d 2019-01-11 01:35 '19 , 1:35, 2019-01-11 01:35

Kiti klausimai apie arba Užduoti klausimą