Kaip grįžti į naujausią versiją git?

Neseniai persikėliau iš SVN į Gitą ir šiek tiek supainavau. Aš turėjau paleisti ankstesnę scenarijaus versiją, naudodamas debugger, todėl aš git checkout <previous version hash> ir padariau tai, ką man reikėjo padaryti.

Dabar noriu grįžti prie naujausios versijos, bet aš nežinau, kaip tai padaryti. Kai git log , nematau jo.

Kaip tai padaryti? Be to, ar yra paprastesnis būdas pakeisti versijas nei įvedant maišus - kažkas panašaus į „grįžti į dvi versijas“ arba „eiti į chronologiškai naujausias“?

255
24 авг. Nathan Long nustatė 24 rug. 2010-08-24 20:16 '10, 20:16, 2010-08-24 20:16
@ 8 atsakymai

git checkout master turi padaryti tai. Jei norite grįžti prie dviejų versijų, galite pasakyti kažką panašaus į „ git checkout HEAD~2 , tačiau geriau šiuo metu sukurti laiko filialą, todėl git checkout -b temp_branch HEAD~2

312
24 авг. Paul Betts atsakymas rugpjūčio 24 d 2010-08-24 20:17 '10, 20:17, 2010-08-24 20:17

Kai patikrinate tam tikrą įvykį, git sukuria atskirą filialą. Taigi, jei skambinate:

 $ git branch 

Pamatysite kažką panašaus:

 * (detached from 3i4j25) master other_branch 

Jei norite grįžti į vedlio galvutę, tiesiog reikia patikrinti savo pagrindinį filialą:

 $ git checkout master 

Ši komanda automatiškai pašalins atskirą filialą.

Jei „ git checkout neveikia, galbūt pakeitėte filialų konfliktus. Kad neprarastumėte git kodo, turite išspręsti šiuos failus. Turite tris parinktis:

  • Nustatykite pakeitimus iš naujo (galite juos paskelbti vėliau):

     $ git stash 
  • Atšaukti pakeitimo atstatymą - atskirkite filialą:

     $ git reset --hard 
  • Sukurkite naują filialą su ankstesniais pakeitimais ir nukopijuokite juos:

     $ git checkout -b my_new_branch $ git add my_file.ext $ git commit -m "My cool msg" 

Po to galite grįžti į pagrindinį filialą (naujausią versiją):

 $ git checkout master 
41
24 февр. Atsakymą pateikė Thomio 24 vasaris. 2015-02-24 21:46 '15 - 21:46 2015-02-24 21:46

Tai padėjo man (vis dar buvau pagrindinėje šakoje):

 git reset --hard origin/master 
28
01 авг. atsakymas pateikiamas averasko 01 rug . 2013-08-01 17:13 '13, 17:13, 2013-08-01 17:13

Naudodami filialų pavadinimus galite patikrinti, viena vertus.

Žinau, kad yra keletas būdų, kaip perkelti HEAD, bet paliksiu jį git ekspertui.

Aš tik norėjau pasiūlyti gitk --all - gitk --all - man buvo labai naudinga, kai gitk --all su git.

7
24 авг. Atsakymą pateikė Jay rugpjūčio 24 d. 2010-08-24 20:20 '10, 20:20, 2010-08-24 20:20

Aš tik pradėjau gilintis į gitą, todėl aš nesu įsitikinęs, ar teisingai suprantu, bet manau, kad teisingas atsakymas į OP klausimą yra tas, kad galite paleisti git log --all su tokiu formatu: git log --all --pretty=format:'%h: %s %d' . Tai reiškia, kad dabartinė versija yra išleista kaip (HEAD) , o kitą galite tiesiog iš sąrašo.

Beje, pridėkite panašų pseudonimą kaip .gitconfig su šiek tiek patobulintu formatu, ir galite paleisti git hist --all :

  hist = log --pretty=format:\"%h %ai | %s%d [%an]\" --graph 

Kalbant apie santykines versijas, radau šį įrašą , tačiau jis tik kalba apie senesnes versijas, tikriausiai nėra jokios nuorodos į naujesnes versijas.

6
27 окт. atsakymas duotas haridsv spalio 27 d 2011-10-27 08:04 '11, 08:04, 2011-10-27 08:04

Norėdami grįžti į naujausią versiją:

 git checkout <branch-name> 

Pavyzdžiui, git checkout master arba git checkout dev

4
10 нояб. atsakymas pateikiamas Reggie Pinkham lapkričio 10 d. 2016-11-10 22:35 '16 at 10:35 pm 2016-11-10 22:35

Grįžę prie ankstesnės versijos,

 $ git checkout HEAD~2 Previous HEAD position was 363a8d7... Fixed a bug #32 

Su šia komanda galite matyti savo funkcijų žurnalą (hash), net ir šioje situacijoje;

 $ git log master --oneline -5 4b5f9c2 Fixed a bug #34 9820632 Fixed a bug #33 ... 

master gali būti pakeistas kitu šakos pavadinimu.

Tada patikrinkite jį, galite grįžti į šią funkciją.

 $ git checkout 4b5f9c2 HEAD is now at 4b5f9c2... Fixed a bug #34 
2
10 мая '16 в 4:13 2016-05-10 04:13 Atsakymas duotas kujiy gegužės 10 d. 16, 4:13 2016-05-10 04:13

Naudojamas elegantiškesnis ir paprastesnis sprendimas

 git stash 

Jis sugrįš į labiausiai vietinį filialo filialą ir išsaugos pakeitimus, kad atsiųstų, taigi, jei norite atšaukti šį veiksmą, atlikite šiuos veiksmus:

 git stash apply 
0
29 нояб. Ilya Gazman atsakymas, pateiktas lapkričio 29 d. 2015-11-29 17:36 '15, 17:36, 2015-11-29 17:36

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