Как я могу просмотреть измененные файлы для каждой фиксации в журнале?

Я хочу просмотреть список файлов, которые были изменены при каждой фиксации в git log. Другой вопрос о том, как просмотреть измененные файлы. для одной фиксации и получил следующий ответ:

$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js

Я хочу знать, как применить это к git log. То есть какую команду мне следует запустить, чтобы получить что-то вроде следующего вывода?

commit 78b3ba12002f9cab5cbb57fac87d8c703702a196
Author: WD40 <[email protected]>
Date:   Fri Apr 14 09:59:57 2017 -0500

    Change more things

    about.html
    javascript/application.js
    javascript/ie6.js

commit 0f98b1f7eda33a4e9cfaab09506aa8094044085f
Author: WD40 <[email protected]>
Date:   Fri Apr 14 09:49:03 2017 -0500

    Change some things

    index.html
    javascript/application.js
    javascript/ie6.js

Кроме того, если это возможно, я хотел бы знать, как сделать то же самое, но также отображать добавленные и удаленные файлы.

Я просмотрел git log --format варианты, но не нашел ничего похожего на то, что мне нужно. У меня такое ощущение, что это невозможно с git log, и может потребоваться объединить вывод нескольких git diff-trees, но я не уверен, как это сделать без сценариев (что может быть единственным способом выполнить то, что я хочу, но Я подумал, что пойду и спрошу, так как это было бы моим последним средством).


person WD40    schedule 14.04.2017    source источник


Ответы (1)


git-log имеет много-много вариантов отображения изменений. Они находятся в документах как общие параметры различий, часто, потому что они re используется многими командами, которые могут отображать коммиты, например git-diff-tree.

--name-only это то, что вы хотите. Есть также...

  • -p для отображения всего патча
  • --stat для отображения изменений файлов и количества изменений
  • --name-status, чтобы показать имя и то, как оно изменилось (изменено, удалено, ...)

И многое, многое другое!

Так, например, git log --name-status может отображать что-то вроде:

commit 78b3ba12002f9cab5cbb57fac87d8c703702a196
Author: WD40 <[email protected]>
Date:   Fri Apr 14 09:59:57 2017 -0500

    Change more things

A      about.html
M      javascript/application.js
D      javascript/ie6.js

commit 0f98b1f7eda33a4e9cfaab09506aa8094044085f
Author: WD40 <[email protected]>
Date:   Fri Apr 14 09:49:03 2017 -0500

    Change some things

A      index.html
A      javascript/application.js
A      javascript/ie6.js

Где A добавлен, M изменен, а D удален.

person Schwern    schedule 14.04.2017