Kaip parodyti padarytus pakeitimus?

Aš padariau keletą pakeitimų; Kaip matyti visų failų, kurie buvo pristatyti kitam įvykiui, skirtumą? Žinau git statusą , bet norėčiau pamatyti faktinius skirtumus, o ne tik nustatytų failų pavadinimus.

Pasakiau git -diff (1) žmogaus puslapį

git diff [--options] [-] [...]

Ši forma sukurta norint peržiūrėti su indeksu susijusius pakeitimus (tarpinę sritį kitam įvykiui). Kitaip tariant, skirtumai yra tai, ką galėtumėte pasakyti, kad pridėtumėte prie indekso, bet jūs vis dar ne. Šiuos pakeitimus galite atlikti naudodami git -add (1).

Deja, aš to nesuprantu. Turi būti tam tikra patogi viena eilutė, kuriai galėčiau sukurti slapyvardį, ar ne?

1499
19 окт. pateikė Frerich Raabe 19 okt. 2009-10-19 12:57 '09, 12:57 2009-10-19 12:57
@ 13 atsakymų

Tai turėtų būti paprasta:

 git diff --cached 

--cached reiškia laikinojo / indekso pokyčių (t.y. pakopinių pakeitimų) rodymą dabartiniam HEAD . --staged yra --staged su - --cached .

PAKEITIMAS

Norint paaiškinti pirmiau pateiktą teiginį, - --staged ir „ --cached nerodo HEAD , tik skirtumas tarp HEAD . Jei pasirenkate git add --patch , ką daryti, naudodami git add --patch (arba git add -p ), - --staged bus grąžintas, kas --staged .

1868 m
19 окт. Charles Bailey atsakymas spalio 19 d 2009-10-19 13:07 '09, 13:07 2009-10-19 13:07

Paprasta grafika aiškiai parodo:

2019

1306
19 окт. Abizern atsakė 19 spalis 2009-10-19 13:27 '09 13:27 2009-10-19 13:27

Jei susidomėjote vizualiai, šis difuzinis įrankis gali tai padaryti. Ji netgi parodys tris skydus, jei bus atlikti kai kurie, bet ne visi pakeitimai. Kilus konfliktui bus net keturios grupės.

2019

49
25 окт. Atsakymas pateikiamas krlmlr spalio 25 d. 2012-10-25 00:05 '12 - 0:05 2012-10-25 00:05

Atkreipkite dėmesį, kad „ git status -v taip pat rodo papildomus pakeitimus! (tai reiškia, kad reikia gauti papildomų pakeitimų - kai kurie pakeitimai. Jokių papildomų pakeitimų, jokių skirtumų tarp „ git status -v .
Tai daroma nuo Git 1.2.0, 2006 m. Vasario mėn.

git status forma (pagal nutylėjimą) „ git status turi „nesudėtingą“ parinktį, kuri faktiškai rodo skirtumą tarp HEAD ir indekso.

Ir jis turėtų tapti dar išsamesnis: žr. „ Tiek žingsnio, tiek darbinio medžio rodymas git dif ? “ (Git 2.3.4+, 2015 m. Antrąjį ketvirtį):

 git status -v -v 
31
18 марта '15 в 10:22 2015-03-18 10:22 atsakymą pateikė „ VonC “ kovo 18 d. 15 val. 10:22 2015-03-18 10:22

Galite naudoti šią komandą.

 git diff --cached --name-only 

Pasirinkimas „ --cached git diff reiškia, kad --cached žingsniai po žingsnio, o parinktis „tik pavadinimas“ reiškia tik failų pavadinimų gavimą.

17
31 авг. atsakymas duotas „ Yash Patadia“ rugpjūčio 31 d. 2016-08-31 13:05 '16, 13:05 pm 2016-08-31 13:05

Nuo 1.7 ir vėlesnės versijos:

 git diff --staged 
11
19 июля '16 в 20:39 2016-07-19 20:39 atsakymas pateikiamas ML13 liepos 16, 16 d. 20:39 2016-07-19 20:39

Jei turite keletą failų su pakopiniais pakeitimais, patartina naudoti git add -i , tada pasirinkite 6: diff ir, galiausiai, pasirinkite jus dominančius failus.

7
14 марта '12 в 17:30 2012-03-14 17:30 atsakymą pateikė Fred Schoen kovo 12 d. 17:30 val. 2012-03-14 17:30

Saugojimo kartografavimui ir saugojimo palyginimui

 $git diff --staged 

Palyginimui su darbo saugojimo žemėlapiu, naudokite

 $ git diff 

bet jei failas yra pakeistas ir pridedamas prie sustojimo vietos ( $ git add fileName ), bandysime pamatyti skirtumą su ( $ git diff ). Ji nepateiks jokių skirtumų, nes failas yra sustojimo zonoje ir nebus lyginamas su saugykla.

5
26 февр. atsakymą pateikė Goyal Vicky , vasario 26 d. 2017-02-26 00:16 '17 ne 0:16 2017-02-26 00:16

Jei ketinate stumti nuotolinio atpirkimo filialą, o jūsų pirmasis leidimas įvykdymo keitimo žurnale buvo neišsamus, prieš spustelėdami galite išspręsti įsipareigojimo pareiškimą.

Vietoje

... atlikti kai kuriuos pakeitimus ...

 git diff # look at unstaged changes git commit -am"partial description of changes" 

... primena daugiau pakeitimų, nenurodytų įsipareigojime ...

git diff origin / master # pažvelgti į papildomus, bet ne spaudžiamus pakeitimus

... keisti žingsnio fiksavimo instrukcijas ...

 git commit --amend -m"i missed mentioning these changes ...." git push 
5
14 окт. Marc Condon atsakymas spalio 14 d 2015-10-14 21:32 '15 - 21:32 2015-10-14 21:32

DIFF VISUALI ĮRANKIO NAUDOJIMAS

Numatytasis atsakymas (komandų eilutė)

Viršutiniai atsakymai čia teisingai rodo, kaip peržiūrėti spartieji / faziniai Index :

 $ git diff --cached 

arba $ git diff --staged , kuris yra slapyvardis.


Vietoj to paleiskite „Visual Diff Tool“

Numatytasis atsakymas yra suteikti diff pakeitimus git bash (ty komandinėje eilutėje arba konsolėje). Tiems, kurie pirmenybę teikia vizualiam fazinių failų skirtumų pateikimui, „git“ turi scenarijų, kuriame rodomas vizualinis atskyrimo įrankis kiekvienam peržiūrimam failui, o ne rodant juos komandų eilutėje, vadinamoje difftool :

 $ git difftool --staged 

Tai atliks tą patį, kaip „ git diff --staged , išskyrus tai, kad kiekvieną kartą, kai naudojamas „diff“ įrankis (t. Y. Kiekvieną kartą, kai failas apdorojamas naudojant „diff“), jis paleidžia numatytąjį vaizdo palyginimo įrankį (mano aplinkoje tai yra kdiff3 ).

Paleidus įrankį, „git diff“ scenarijaus funkcija bus sustabdyta, kol bus uždarytas vaizdo matavimo įrankis. Todėl, norėdami pamatyti kitą, turėsite uždaryti kiekvieną failą.


difftool komandose visada galite naudoti difftool vietoj diff

Visiems jūsų vizualiniams skirtumams reikia, kad git difftool veiktų vietoj bet kokių git diff , įskaitant visus parametrus.

Pvz., Norėdami paleisti vizualinės analizės įrankį, neprašydami, ar reikia tai padaryti kiekvienam failui, pridėkite -y parinktį (manau, kad jums paprastai to reikia):

 $ git difftool -y --staged 

Tokiu atveju kiekvienas failas bus išspaudžiamas vizualinio ribojimo įrankiu po vieną, po to bus uždarytas kitas įrankis.

Arba peržiūrėkite Index skirtą failą:

 $ git difftool -y --staged <<relative path/filename>> 

Visų parametrų ieškokite pagalbos puslapyje:

 $ git difftool --help 


Visual Git Tool konfigūravimas

Jei norite naudoti kitokį vaizdinį įrankį, o ne standartinį, naudokite parametrą -t <tool> :

 $ git difftool -t <tool> <<other args>> 

Arba žr. „Difftool“ nuorodų puslapį, kaip sukonfigūruoti „git“ naudoti kitą numatytąjį „diff diff“ įrankį.

3
15 авг. LightCC atsakymas, pateiktas rugpjūčio 15 d. 2017-08-15 02:33 '17, 2:33 2017-08-15 02:33

git gui ir git-cola yra grafinės priemonės, leidžiančios peržiūrėti ir apdoroti indeksą. Abi apima paprastus vizualius skirtumus fazuotiems failams, o „ git-cola taip pat gali atlikti sudėtingesnį vizualinio palyginimo įrankį.

Mano artimiausias atsakymas į klausimą Kaip pašalinti failą iš indekso git? taip pat šis oficialus „ Git“ katalogas - GUI klientai .

2
13 апр. atsakymas pateikiamas nobar 13 Bal 2016-04-13 17:31 '16 at 17:31 pm 2016-04-13 17:31

Pagalvokite apie git įrankį, kuris taip pat turi git ir yra labai naudingas norint pamatyti pakeitimus.

0
03 авг. atsakymas pateikiamas sam 03 rug. 2016-08-03 13:40 '16 at 13:40 2016-08-03 13:40

Pagal numatytuosius nustatymus „ git diff“ naudojama rodyti pakeitimus, kurie nėra įtraukti į atnaujintų failų sąrašą. Tačiau, jei norite parodyti pridėtus ar pažymėtus pakeitimus, turite pateikti papildomus parametrus, kurie leis „git“ žinoti, kad domina skaldyti arba pridėti „ diff“ failai.

 $ git diff # Default Use $ git diff --cached # Can be used to show difference after adding the files $ git diff --staged # Same as 'git diff --cached' mostly used with latest version of git 

Pavyzdys

 $ git diff diff --git a/x/y/z.js b/x/y/z.js index 98fc22b..0359d84 100644 --- a/x/y/z.js +++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) { - if (a) + if (typeof a !== 'undefined') res = 1; else res = 2; $ git add x/y/z.js $ git diff $ 

Pridėję failų, negalite naudoti numatytojo „git diff“. Turite atlikti šiuos veiksmus: -

 $ git diff --cached diff --git a/x/y/z.js b/x/y/z.js index 98fc22b..0359d84 100644 --- a/x/y/z.js +++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) { - if (a) + if (typeof a !== 'undefined') res = 1; else res = 2; 
0
20 нояб. atsakymą pateikė Deepak Dixit 20 nov. 2017-11-20 09:30 '17, 9:30, 2017-11-20 09:30