Kaip pamatyti pokyčius gitoje?

Kai darau git diff COMMIT matau pokyčius tarp šio įsipareigojimo ir HEAD (kiek aš žinau), bet norėčiau matyti pakeitimus, kuriuos padarė šis vienintelis įsipareigojimas.

Neradau jokių akivaizdžių skirtumų / žurnalo parinkčių, kurios man suteiktų tokią išvadą.

1114
10 июля '13 в 9:22 2013-07-10 09:22 laktak yra nustatytas liepos 10 d. 13 val. 9:22 2013-07-10 09:22
@ 17 atsakymų

Jei norite pamatyti skirtumą konkrečiam COMMIT maišui:

git diff COMMIT~ COMMIT parodys skirtumą tarp šio protėvio COMMIT ir COMMIT . Išsamesnės informacijos apie komandą ir gitrevisions apie notaciją ir jos draugus rasite puslapiuose, kuriuose rasite „ Git“ skirtumą .

Arba git show COMMIT atliks kažką labai panašaus. (Įsipareigojimų duomenys, įskaitant jų skirtumus, bet ne sujungti). Žr. Git show manual puslapį .

1439
10 июля '13 в 9:23 2013-07-10 09:23 atsakymą davė Nevikas Rehnelis liepos 10 d. 13 val. 9:23 2013-07-10 09:23

Kaip nurodyta santrumpoje dėl gito nustatymo iš savo tėvų , galite naudoti ir git diff su:

 git diff COMMIT^! 

arba

 git diff-tree -p COMMIT 

Su „git“ parodymais jums reikia (kad sutelktumėte dėmesį į skirtumą atskirai):

border=0
 git show --color --pretty=format:%b $COMMIT 

COMMIT parametras - įsipareigojimas :

A įvykdyti objektą arba objektą, kuris gali būti rekursyviai nukreiptas į įvykio objektą. Toliau išvardytos visos įsipareigojimo dėmės: įsipareigojimo objektas, žymos objektas , nukreipiantis į įsipareigojimo objektą, žymos objektas, nukreipiantis į žymos objektą, nukreiptą į įvykio objektą ir tt

Žr. Gitrevision "POINT REVISIONS nuorodoms į ded -ish.
Taip pat žr. „ Ką reiškia medis Gite? “.

408
10 июля '13 в 9:31 2013-07-10 09:31 atsakymas pateikiamas VonC liepos 10, 13 d., 9:31 val. 2013-07-10 09:31

Taip pat galite pabandyti šį paprastą būdą:

 git show <COMMIT> 
234
15 июня '16 в 12:02 2016-06-15 12:02 atsakymas pateikiamas „ Lakhan“ birželio 15 d. 16 val. 12:02 2016-06-15 12:02

git show rodo paskutinio įvykio pakeitimus.

Lygiavertis git show HEAD .

git show HEAD~1 nuveda jus atgal 1.

56
16 сент. atsakymą davė Adomas Salma 16 sep. 2016-09-16 04:50 '16 at 4:50 2016-09-16 04:50

Pirmiausia naudokite „Fix ID“ naudodami,

 git log #to list all 

Or

 git log -p -1 #last one commit id 

Nukopijuokite taisymo identifikatorių.

Dabar mes naudojame du metodus, norėdami išvardyti pakeitimus iš konkretaus įvykio,

1 metodas:

git diff commit_id^! #commit id something like this 1c6a6000asad012

2 metodas:

 git show commit_id For example: git show 1c6a600a 
26
19 июля '17 в 8:48 2017-07-19 08:48 Atsakymą pateikė „ Mohideen ibn Mohammed “ liepos 17 d. 17 val.

git -diff (1) pagalbos puslapio:

 git diff [options] [<commit>] [--] [<path>…] git diff [options] --cached [<commit>] [--] [<path>…] git diff [options] <commit> <commit> [--] [<path>…] git diff [options] <blob> <blob> git diff [options] [--no-index] [--] <path> <path> 

Naudokite trečiąjį viduryje:

 git diff [options] <parent-commit> <commit> 

Taip pat tame pačiame vadovo puslapyje, esančiame skyriuje Pavyzdžiai :

 $ git diff HEAD^ HEAD <3> 

Palyginkite versiją iki paskutinio įsipareigojimo ir paskutinio įvykio.

Tiesa, tai yra šiek tiek paini, tai būtų mažiau paini, nes

Palyginkite naujausią fiksuojantį įrašą prieš jį.

23
10 июля '13 в 10:20 2013-07-10 10:20 atsakymą pateikė vartotojo456814 10 liepos 13 d. 10:20 2013-07-10 10:20

Atrodo, kad tai daro darbą; Aš naudoju jį parodyti, kas buvo sujungta.

 git whatchanged -m -n 1 -p <SHA-1 hash of merge commit> 
19
14 окт. Atsakymą pateikė MichaelMoser spalio 14 d. 2014-10-14 20:16 '14, 20:16, 2014-10-14 20:16
 git show <commit_sha> 

Tai parodys jums, kad šiame įvykyje. Manau, kad tai galite padaryti, paprasčiausiai įterpdami tarpą tarp dviejų.

 git show <beginning_sha> <ending_sha> 

kuri yra labai naudinga, jei dažnai tikrinate atgal, nes jūsų funkcijų žurnalai bus iš eilės.

16
22 авг. Atsakymas duotas Iwnnay 22 rug . 2018-08-22 17:46 '18, 5:46 pm 2018-08-22 17:46

Kita galimybė:

git log -p COMMIT -1

11
16 февр. John_West atsakymas, pateiktas vasario 16 d. 2016-02-16 17:49 '16 at 17:49 PM 2016-02-16 17:49
 git difftool COMMIT^ <commit hash> 

taip pat įmanoma, jei konfigūravote difftoolį.

Čia rasite, kaip nustatyti difftoolį arba nuorodos puslapį čia.

Be to, galite naudoti „ git diff-tree --no-commit-id --name-only -r <commit hash> kad sužinotumėte, kurie failai buvo pakeisti / priskirti komandai „įsipareigojimo įsipareigojimas“.

8
24 марта '14 в 15:49 2014-03-24 15:49 atsakymą pateikė Chand Priyankara kovo 14 d. 14 d. 15:49 2014-03-24 15:49

Jei norite pamatyti skirtumą su tėvų įsipareigojimu, galite naudoti git diff HEAD HEAD^1 .

Jei norite matyti tik failų sąrašą, pridėkite --stat .

6
08 дек. Atsakyti Irshu 08 Dec 2015-12-08 07:17 '15 at 7:17 2015-12-08 07:17

Jei norite peržiūrėti autorių ir laiką, naudokite įsipareigojimo git show COMMIT . Kuris būtų toks:

 commit 13414df70354678b1b9304ebe4b6d204810f867e Merge: a2a2894 3a1ba8f Author: You <you@you.com> Date: Fri Jul 24 17:46:42 2015 -0700 Merge remote-tracking branch 'origin/your-feature' 

Jei norite pamatyti, kurie failai buvo pakeisti, atlikite toliau nurodytas reikšmes sujungimo linijos viršuje virš git diff --stat a2a2894 3a1ba8f .

Jei norite matyti faktinį git --stat a2a2894 3a1ba8f , paleiskite git --stat a2a2894 3a1ba8f

6
28 июля '15 в 1:20 2015-07-28 01:20 atsakymą davė Nikita G. liepos 28 d., 15 val. 1:20 2015-07-28 01:20

„Windows 10“ naudoju „Git“ versiją 2.6.1.windows.1, todėl reikėjo šiek tiek pakeisti „Neviko“ atsakymą („tilde“, o ne „caret“):

 git diff COMMIT~ COMMIT 

Kita galimybė - cituoti vežimą:

 git diff "COMMIT^" COMMIT 
4
20 янв. Atsakymą pateikė Juuso Ohtonen 2017-01-20 11:00 '17 11:00 val. 2017-01-20 11:00

Man patinka žemiau esanti komanda, kad palygintumėte tam tikrą įvykį ir jo paskutinį įsipareigojimą:

 git diff <commit-hash>^- 

Pavyzdys:

 git diff cd1b3f485^- 
4
10 апр. atsakymas, kurį pateikė starcwl 10 Bal 2018-04-10 13:11 '18, 13:11 pm 2018-04-10 13:11

Ši komanda gaus Git tėvų įsipareigojimą:

 git log -n 2 <commit-hash> 

Po to git diff-tool <commit-hash> <parent-commit-hash>

Pavyzdys:

 bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3 commit 7f65b9a9d3820525766fcba285b3c678e889fe3b Author: souparno <souparno.majumder@gmail.com> Date: Mon Jul 25 13:17:07 2016 +0530 CSS changed to maintain the aspect ratio of the channel logos and to fit them properly. commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f Author: souparno <souparno.majumder@gmail.com> Date: Mon Jul 25 11:28:09 2016 +0530 The ratio of the height to width of the channel images are maintained. 

Po to

 git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f 
2
29 июля '16 в 15:19 2016-07-29 15:19 atsakymą pateikė souparno majumder, liepos 29 d. 16, 15:19 2016-07-29 15:19

Jei norite patikrinti, ar nėra pakeitimų:

  git diff <commit_Id_1> <commit_Id_2> 

Jei norite patikrinti tik pakeistus / pridėtus / ištrintus failus:

  git diff <commit_Id_1> <commit_Id_2> --name-only 

PASTABA . Jei norite išbandyti diferencialą nepadarę tarp jų, nereikia nurodyti įsipareigojimo identifikatorių.

0
29 янв. atsakymas pateikiamas bit_cracker007 Jan 29 2019-01-29 22:41 '19 , 10:41 val. 2019-01-29 22:41

Jei tikrinamas šaltinio pasikeitimas grafiniame vaizde,

 $gitk (Mention your commit id here) 

pavyzdžiui:

 $gitk HEAD~1 
-1
11 мая '18 в 11:02 2018-05-11 11:02 atsakymą pateikė vartotojo272390 gegužės 11 d. 11:02 2018-05-11 11:02

Kiti klausimai apie „ arba „ Užduoti klausimą“