Kaip nurodyti tik failų pavadinimus, kurie pasikeitė tarp dviejų įsipareigojimų?

Turiu daug krūvio repo. Noriu matyti, kad failų sąrašas pasikeitė tarp dviejų įsipareigojimų: nuo SHA1 iki SHA2.

Kokią komandą turėčiau naudoti?

1584
12 окт. spalio 12 d 2009-10-12 04:48 '09, 4:48, 2009-10-12 04:48
@ 13 atsakymų
 git diff --name-only SHA1 SHA2 

kur jums reikia tik suteikti pakankamai SHA, kad nustatytumėte įsipareigojimus. Taip pat galite padaryti, pavyzdžiui

 git diff --name-only HEAD~10 HEAD~5 

pamatyti skirtumus tarp dešimtosios paskutinės fiksatoriaus ir penktosios paskutinės (ar taip).

2164
12 окт. Petro atsakymą pateikė spalio 12 d 2009-10-12 04:51 '09 4:51 am 2009-10-12 04:51
 git diff --name-status [SHA1 [SHA2]] 

panašus į tik -name pavadinimą, išskyrus tai, kad gaunate paprastą priešdėlį, kuris nurodo, kas nutiko failui (pakeistas, ištrintas, pridėtas ...)

 git log --name-status --oneline [SHA1..SHA2] 
border=0

panašūs, bet įsipareigoja išvardyti po įsipareigojimo pranešimo, todėl galite pamatyti, kada failas buvo pakeistas.

  • Jei jus domina tik tai, kas atsitiko su tam tikrais failais / aplankais, galite pridėti -- <filename> [<filename>...] į git log versiją.

  • jei norite sužinoti, kas įvyko vienam git log --name-status --oneline [SHA1^..SHA1] , pavadinkite jį SHA1, tada git log --name-status --oneline [SHA1^..SHA1]

Failų būsenos vėliavos:
M pakeista - failas pasikeitė
C copy-edit - failas kopijuojamas ir redaguojamas
R pervadinti-redaguoti - failas buvo pervadintas ir pakeistas.
Pridėtas failas - pridėtas failas - D ištrintas - failas ištrintas
U unmerged - susiliejus failui būdingi konfliktai

362
26 июля '11 в 12:26 2011-07-26 12:26 atsakymą pateikė artfulrobot, liepos 26 d. 11, 12:26 2011-07-26 12:26

Tačiau norėdami peržiūrėti failus, kurie buvo pakeisti tarp jūsų filialo ir bendro protėvio su kitu filialu (pvz., Kilme / kapitonas):

 git diff --name-only `git merge-base origin/master HEAD` 
43
20 марта '12 в 20:10 2012-03-20 20:10 atsakymą pateikė Tim Jamesas kovo 20 d. 12 val. 20:10 2012-03-20 20:10

Atrodo, kad --stat minėjo --stat jungiklį:

 $ git diff --stat HEAD~5 HEAD .../java/org/apache/calcite/rex/RexSimplify.java | 50 +++++++++++++++++----- .../apache/calcite/sql/fun/SqlTrimFunction.java | 2 +- .../apache/calcite/sql2rel/SqlToRelConverter.java | 16 +++++++ .../org/apache/calcite/util/SaffronProperties.java | 19 ++++---- .../org/apache/calcite/test/RexProgramTest.java | 24 +++++++++++ .../apache/calcite/test/SqlToRelConverterTest.java | 8 ++++ .../apache/calcite/test/SqlToRelConverterTest.xml | 15 +++++++ pom.xml | 2 +- .../apache/calcite/adapter/spark/SparkRules.java | 7 +-- 9 files changed, 117 insertions(+), 26 deletions(-) 

Taip pat yra --numstat

 $ git diff --numstat HEAD~5 HEAD 40 10 core/src/main/java/org/apache/calcite/rex/RexSimplify.java 1 1 core/src/main/java/org/apache/calcite/sql/fun/SqlTrimFunction.java 16 0 core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java 8 11 core/src/main/java/org/apache/calcite/util/SaffronProperties.java 24 0 core/src/test/java/org/apache/calcite/test/RexProgramTest.java 8 0 core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java 15 0 core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml 1 1 pom.xml 4 3 spark/src/main/java/org/apache/calcite/adapter/spark/SparkRules.java 

ir --shortstat

 $ git diff --shortstat HEAD~5 HEAD 9 files changed, 117 insertions(+), 26 deletions(-) 
41
20 окт. atsakymas, kurį pateikė leeyuiwah 20 spalis 2017-10-20 00:50 '17 - 0:50 2017-10-20 00:50

Jei norite pridėti atsakymą „@artfulrobot“, jei norite parodyti pakeistus failus tarp dviejų filialų:

 git diff --name-status mybranch..myotherbranch 

Būkite atsargūs su prioritetu. Jei pirmą kartą įdėjote naują filialą, tada bus rodomi ištrinti failai, kurie nėra įtraukti.

grep pridėjimas gali papildomai paaiškinti:

 git diff --name-status mybranch..myotherbranch | grep "A\t" 

Tada bus rodomi tik failai, įtraukti į myotherbranch .

19
22 окт. Atsakymas pateikiamas Max MacLeod 22 okt. 2013-10-22 13:42 '13, 13:42 2013-10-22 13:42

Pridėkite slapyvardį žemiau savo ~/.bash_profile , tada paleiskite source ~/.bash_profile ; dabar bet kuriuo metu turite matyti atnaujintus failus paskutiniame showfiles , paleisti „ showfiles iš „git“ saugyklos.

 alias showfiles='git show --pretty="format:" --name-only' 
8
10 апр. atsakymas duotas Zorayr balandžio 10 d 2015-04-10 22:38 '15, 10:38 pm 2015-04-10 22:38

Tai parodys failų pakeitimus:

 git diff --word-diff SHA1 SHA2 
7
04 дек. Julio Marins atsakė į 04 Dec 2014-12-04 18:10 '14 at 18:10 2014-12-04 18:10

Taip pat atkreipkite dėmesį, jei tiesiog norite peržiūrėti pakeistus failus tarp paskutinio fiksatoriaus ir jo buvusio. Tai veikia gerai: „ git show --name-only

3
01 окт. atsakymas pateikiamas Parris 01 okt. 2015-10-01 23:42 '15 ne 23:42 2015-10-01 23:42

Naudojant git log --pretty = oneline> C: failo pavadinimas.log

kuris registruos tik oneline (--pretty = oneline), kuris yra pakeistos rinkmenos pavadinimas. Ji taip pat įrašys visus išvesties failo duomenis.

3
10 сент. Atsakymas pateikiamas Agni 10 Sep. 2014-09-10 13:59 '14, 13:59 2014-09-10 13:59

Kaip atsakė artfulrobot:

 git diff --name-status [SHA1 [SHA2]] 

Mano pavyzdys:

 git diff --name-status 78a09k12067c24d8f117886c4723ccf111af4997 4b95d595812211553070046bf2ebd807c0862cca M views/layouts/default.ctp M webroot/css/theme.css A webroot/img/theme/logo.png 
2
03 мая '18 в 15:37 2018-05-03 15:37 atsakymą pateikė Jaime Montoya gegužės 03, 18 d. 15:37 2018-05-03 15:37

Man gerai veikia šie veiksmai:

$ git show --name-only --format=tformat: SHA1..SHA2

Jis taip pat gali būti naudojamas su vienu įvykiu:

git show --name-only --format=tformat: SHA1

kuris yra patogus naudoti „Jenkins“, kur yra pateiktas SHA changeSet sąrašas, ir norite juos peržiūrėti, kad pamatytumėte, kurie failai buvo pakeisti.

Tai atrodo kaip keletas pirmiau pateiktų atsakymų, bet naudojant tformat: vietoj format: pašalina separatorių tarp įsipareigojimų.

0
16 нояб. Atsakymą pateikė blindsnowmobile 16 lapkričio. 2018-11-16 22:27 '18, 22:27 pm 2018-11-16 22:27

Tik tiems, kuriems reikia sutelkti dėmesį tik į „Java“ failus, čia yra mano sprendimas:

  git diff --name-status SHA1 SHA2 | grep '\.java$' 
0
29 янв. atsakymas pateikiamas K. Symbol 29 jan. 2019-01-29 06:48 '19 , 6:48 2019-01-29 06:48

Remiantis git diff --name-status parašiau git-diffview git plėtinį, kuriame rodomas hierarchinis medžio vaizdas, kas pasikeitė tarp dviejų takų.

0
03 нояб. Atsakymą pateikė Bernard Opic 03 lapkritis. 2015-11-03 12:39 '15, 12:39 2015-11-03 12:39

Kiti klausimai apie žymes arba Užduoti klausimą