Как вывести список всех файлов в коммите? - PullRequest
2463 голосов
/ 08 января 2009

Я ищу простую команду git, которая предоставляет красиво отформатированный список всех файлов, которые были частью фиксации, заданной хешем (SHA1), без посторонней информации.

Я пробовал:

git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d

Несмотря на то, что в нем перечислены файлы, он также содержит нежелательную информацию о различиях для каждого.

Есть ли еще одна команда git, которая предоставит именно тот список, который мне нужен, чтобы я мог избежать анализа его из вывода git show?

Ответы [ 29 ]

7 голосов
/ 02 сентября 2017

Нашли идеальный ответ на это:

git show --name-status --oneline <commit-hash>

Чтобы я мог знать

which files were just modified M

Which files were newly added , A

Which files were deleted , D
5 голосов
/ 08 января 2009

Комбинация "git show --stat" (спасибо Райану) и пара команд sed должны урезать данные для вас:

git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"

Это выдаст только список измененных файлов.

5 голосов
/ 26 августа 2015

Существует простой способ просмотра списка файлов, просто добавьте : после хеша.

git show 9d3a52c474:

Затем вы можете сверлить,

git show 9d3a52c474:someDir/someOtherDir

Если вы нажмете на файл, вы получите сырую версию файла; иногда это то, что вам нужно, если вы ищете только хорошую ссылку или ключевые куски кода (различия могут привести к беспорядку)

git show 9d3a52c474:someDir/someOtherDir/somefile

Единственным недостатком этого метода является то, что он не так просто отображает дерево файлов.

2 голосов
/ 06 октября 2018

попробуйте эту команду для имени и изменения номера строки

git show --stat <commit-hash>

показывать только имена файлов

git show --stat --name-only  <commit-hash>

, чтобы получить хэш последнего коммита, затем попробуйте эту команду

git log -1

последний коммит с указанием имени файла и статуса файла, изменение, создание или удаление

 git log -1 --oneline --name-status

или для всех

git log
2 голосов
/ 12 июня 2012
git show HEAD@{0}

отлично работает у меня

1 голос
/ 22 мая 2019

Я использую это, чтобы получить список измененных файлов при слиянии

λ git log -m -1 --name-only --pretty="format:"
configs/anotherconfig.xml
configs/configsInRepo.xml

или

λ git log -m -1 --name-status --pretty="format:"
A       configs/anotherconfig.xml
M       configs/configsInRepo.xml
1 голос
/ 07 января 2019

Если вы используете плагин oh-my-zsh и git, полезно использовать ярлык glg .

0 голосов
/ 08 марта 2018

Это должно работать:

git status

Это покажет, что не ставится, а что ставится.

0 голосов
/ 02 декабря 2015

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

Для тех, кто покрывает SVN, вы найдете это полезным: (это комбинация идей из разных тем, я только беру кредит от знания, как использовать копирование / вставку)

.gitconfig:
        ls = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative --name-status

>>git ls
* 99f21a6 - (HEAD -> swift) New Files from xcode 7 (11 hours ago) Jim Zucker| 
| A     icds.xcodeproj/project.pbxproj
| A     icds.xcodeproj/project.xcworkspace/contents.xcworkspacedata
| A     icds/AppDelegate.m
| A     icds/Assets.xcassets/AppIcon.appiconset/Contents.json

* e0a1bb6 - Move everything to old (11 hours ago) Jim Zucker| 
| D     Classes/AppInfoViewControler.h
| D     Classes/AppInfoViewControler.m
| D     Classes/CurveInstrument.h


.gitconfig: 
       lt = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative

>>git lt
* 99f21a6 - (HEAD -> swift) New Files from xcode 7 (11 hours ago) Jim Zucker
* e0a1bb6 - Move everything to old (11 hours ago) Jim Zucker
* 778bda6 - Cleanup for new project (11 hours ago) Jim Zucker
* 7373b5e - clean up files from old version (11 hours ago) Jim Zucker
* 14a8d53 - (tag: 1.x, origin/swift, origin/master, master) Initial Commit (16 hours ago) Jim Zucker


.gitconfig
lt = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset' --abbrev-commit --date=relative

>> git lt

commit 99f21a61de832bad7b2bdb74066a08cac3d0bf3c
Author: Jim Zucker <jim@stratengllc.com>
Date:   Tue Dec 1 22:23:10 2015 -0800

    New Files from xcode 7

A       icds.xcodeproj/project.pbxproj
A       icds.xcodeproj/project.xcworkspace/contents.xcworkspacedata


commit e0a1bb6b59ed6a4f9147e894d7f7fe00283fce8d
Author: Jim Zucker <jim@stratengllc.com>
Date:   Tue Dec 1 22:17:00 2015 -0800

    Move everything to old

D       Classes/AppInfoViewControler.h
D       Classes/AppInfoViewControler.m
D       Classes/CurveInstrument.h
D       Classes/CurveInstrument.m
...