Git diff vs piniginė

Kaip aš galiu pamatyti, kad pakeitimai, atlikti su atjungimu, bus rodomi dabartiniame darbo medyje? Norėčiau sužinoti, kokie pakeitimai bus atlikti prieš juos taikant!

856
06 окт. nustatė Prospero 06 okt. 2011-10-06 19:48 '11, 19:48, 2011-10-06 19:48
@ 9 atsakymai

Žr. Paskutinę talpyklą:

 git stash show -p 

Žr. Savavališką kodą:

 git stash show -p stash@{1} 

Nuo git stash manpages:

Pagal numatytuosius nustatymus komanda rodo difstatą, tačiau ji priima bet kokį formatą, vadinamą „git diff“ (pvz., „Git show-show -p stash @ {1}, kad galėtumėte peržiūrėti antrą naujausią pleistrą panašią talpyklą).

1185
06 окт. atsakymas duotas Amber 06 okt. 2011-10-06 19:50 '11, 19:50, 2011-10-06 19:50

Jei norite pamatyti paskutinę talpyklą:

 git stash show -p 

Jei norite pamatyti savavališką kodą:

 git stash show -p stash@{1} 

Be to, aš naudoju git dif palyginti piniginę su bet kuriuo filialu.

Galite naudoti:

 git diff stash@{0} master 

Jei norite pamatyti visus pakeitimus, palyginti su šakos vedliu.


Arba galite naudoti:

 git diff --name-only stash@{0} master 

Norėdami lengvai rasti tik pakeistus failų pavadinimus.

204
26 июля '12 в 17:33 2012-07-26 17:33 atsakymas pateikiamas czerasz liepos 26 d. 12 val. 17:33 2012-07-26 17:33

Jei filialas, kuriame paslėpti pakeitimai yra pagrįsti pakeitimais, tuo tarpu ši komanda gali būti naudinga:

 git diff stash@{0}^! 

Tai lygina talpyklą su tais, kuriais jis yra pagrįstas.

67
27 марта '13 в 16:23 2013-03-27 16:23 atsakymas pateikiamas „ t.heintz“ kovo 27 d. 13 d. 16:23 2013-03-27 16:23

Jei jūsų darbo medis yra nešvarus , galite jį palyginti su savo pinigine, pirmiausia nuvalydami purviną darbo medį, o tada lygindami jį su programa. Vėliau galite atšaukti pataisą su nešvariu darbo mediu (nes gali nenorite, kad ši nešvari pataisa būtų pataisyta žurnale).

Taip pat galite naudoti šį metodą, kad palygintumėte du įrašus vienas su kitu (šiuo atveju pirmiausia paspauskite vieną iš streikų).

  • Ištaisykite purviną darbo medį:

     git add . git commit -m "Dirty commit" 
  • Išvalykite talpyklą su šiuo pataisymu:

     git diff HEAD stash@{0} 
  • Tada po to galite grąžinti pataisą ir grąžinti jį į darbo katalogą:

     git reset --soft HEAD~1 git reset . 

Dabar iš savo piniginės išardėte purviną darbo medį ir grįžote ten, kur buvote.

25
21 янв. Atsakymas duotas Magne 21 jan. 2013-01-21 16:33 '13, 16:33, 2013-01-21 16:33

Tai veikia man git versijoje 1.8.5.2:

 git diff stash HEAD 
15
23 янв. Atsakymas duotas Rimianui sausio 23 d. 2014-01-23 02:36 '14 at 2:36 2014-01-23 02:36

Jei turite skirtingų įrankių (pvz., Palyginimui)

 git difftool stash HEAD 
8
09 сент. atsakymas pateikiamas yerlilbilgin 09 sep . 2015-09-09 11:08 '15 - 11:08 2015-09-09 11:08

@ Atsakymas į magnatas yra vienintelė (labai vėlyva) data, atsakanti į lanksčiausią / naudingiausią klausimo aiškinimą, tačiau jo kova yra sudėtingesnė nei būtina. Užuot užsisakę ir perkraunant, tiesiog paslėpkite savo darbo kopiją, palyginkite ir neištrinkite.

 git stash save "temp" git diff stash@{0} stash@{1} git stash pop 

Tai parodys skirtumus tarp kamino kamino viršuje ir darbiniame aplanke, laikinai sukurdamas darbo aplanką kamino viršuje (stash @ {0}), perkeliant pradinį viršų žemyn (stash @ {1}), tada palyginkite pradinio viršūnės naudojimą „naujoje nustatyti “, kad pamatytumėte pakeitimus, galinčius atsirasti dėl to, kad jį naudosite dabartiniame darbe.

"O ką daryti, jei neturiu dabartinio darbo?" Tada esate įprasta nuobodu. Tiesiog naudokite atsakymą @Amber

 git stash show 

arba @czerasz atsakymas

 git diff stash@{0} 

arba sutinku, kad persidengimas ir atrakinimas vistiek greitai ir lengvai, tiesiog neatleiskite pakeitimų ir patikrinkite juos. Jei nenorite, kad jie juos išmestų (keičiamas esamas indekso / darbo aplankas). Visa tai

 git stash apply git diff git reset git checkout 
6
28 июня '16 в 19:13 2016-06-28 19:13 atsakymą davė SensorSmith birželio 28 d. 16:13 2016-06-28 19:13

FWIW Tai gali būti šiek tiek nereikalinga visiems kitiems atsakymams ir yra labai panaši į priimtą atsakymą; bet gal tai padės kam nors.

git stash show --help suteiks jums viską, ko reikia; įskaitant informaciją apie ekraną.

rodyti [<stash>]

Rodyti skirtumus, kurie įrašyti piniginėje, kaip skirtumą tarp išsaugotos būsenos ir pirminio tėvų. Kai ne, rodomas paskutinis. Pagal numatytuosius nustatymus komanda rodo skirtingą formatą, tačiau ji užtruks bet kokį formatą, vadinamą „git diff“ (pvz., „Git stash show -p stash @ {1}, kad peržiūrėtumėte antrąją naujausią talpykloje esančią talpyklą). Jei norite pakeisti numatytąjį elgesį, galite naudoti stash.showStat ir / arba stash.showPatch konfigūracijos kintamuosius.

2
18 авг. Anovative 18 rug . 2016-08-18 19:40 '16 at 7:40 pm 2016-08-18 19:40

Sujungus tai, ką sužinojau šioje temoje, ir tai , kai noriu matyti „kas yra piniginėje,“ pirmą kartą paleidžiau:

 git stash show stash@{0} 

Tai parodys, kurie failai buvo pakeisti. Tada, norėdami gauti gerą vizualų difftoolį, aš:

 git difftool --dir-diff stash@{0} stash@{0}^ 

Tai parodys visus skirtumus iš nurodyto antspaudo prieš tėvą.

Pavyzdžiui, galite konfigūruoti „diff“ įrankį ~/.gitconfig . su Meld :

 ... [diff] tool = meld 
1
20 окт. Atsakyti Ferrard 20 oct. 2015-10-20 15:24 '15 15:24 2015-10-20 15:24

Peržiūrėkite kitus klausimus apie „ žymes arba užduokite klausimą