Gaukite pakeistų failų sąrašą ir konkrečios „Git“ įsipareigojimo būseną

Naudoju šią git komandą

 git diff-tree --no-commit-id --name-only -r <SHA> 

gauti pakeistų failų sąrašą.

Deja, sąraše nenurodomas kiekvieno failo pakeitimo tipas: pridėta, pakeista ar ištrinta ... ir tt

Kaip galiu parodyti konkrečių įvykių SHA pakeitimų sąrašą [keisti tipą, failo pavadinimą].

3
17 июля '14 в 15:29 2014-07-17 15:29 Ashraf Bashir yra nustatytas liepos 17 d. 14 val. 2014-08-17 15:29
@ 5 atsakymai

Vietoj --name-only naudokite --name-status

 git diff-tree --no-commit-id --name-status -r <SHA> 

Tai parodys būsenos raidės pavadinimą (ištrauktą iš asmens): Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (ie regular file, symlink, submodule, ...) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B).

4
18 июля '14 в 10:36 2014-07-18 10:36 Atsakymą davė Joe liepos 18 d. 14, 10:36 2014-07-18 10:36

Nors Joe atsakymas rodo, kad galite naudoti „ --name-status vėliavą su git diff-tree , taip pat galite naudoti tą pačią vėliavą su git diff .

Jei norite gauti modifikuotus failus su jų būsena tik konkrečiam įvykiui , galite tiesiog naudoti šio „sha-identifikatoriaus“ įsipareigojimą su įsipareigojančiojo tėvų specifikatoriumi, pvz.

 git diff --name-status <sha>^ <sha> 

Peržiūros <sha>^ reiškia pirmąjį įsipareigojimo <sha> tėvą, todėl naudojant šį parametrą su git diff suteikia visus pakeitimus, padarytus tarp įsipareigojimo ir jo tėvų.

Alternatyva

Taip pat galite naudoti

 git diff --name-status <sha>~ <sha> 

kur <sha>~ taip pat reiškia pirmąjį įsipareigojimą <sha> .

Dokumentacija

2
22 июля '14 в 7:32 2014-07-22 07:32 atsakymą pateikė vartotojo456814 liepos 22 d., „14, 07:32 2014-07-22 07:32

Ačiū hvd komentarui apie stdcall atsakymą ,

Jūsų pirminis atsakymas, į kurį buvo įtraukta forma git whatchanged SHA-1 , buvo beveik teisus: pridėkite parametrą -1 kad gautumėte tik šį konkretų įvykį.

Čia rasite sprendimą tiems, kurie domisi:

 git whatchanged <SHA> -1 

Kitas sprendimas:

 git diff-tree --no-commit-id -r <SHA> 
0
17 июля '14 в 16:14 2014-07-17 16:14 atsakymą pateikė Ashraf Bashir, liepos 17 d. 14, 16:14 2014-07-17 16:14

Naudokite

 git whatchanged 

pamatyti paskutinį pataisymą

0
17 июля '14 в 15:31 2014-07-17 15:31 atsakymas pateikiamas liepos 17 d. 14 val. 15:31 2014-07-17 15:31
 git checkout <commit> git whatchanged -1 
0
17 июля '14 в 16:08 2014-07-17 16:08 Atsakymą pateikė Martin liepos 17 d. 14 d. 16:08 2014-07-17 16:08

Kiti klausimai apie žymas arba Ask a Question