2016-03-11 11 views
3

У меня есть привязка Git pre-commit, которая разделяет пробелы и оставляет измененные файлы в рабочей копии, так что она не топает на частичном добавлении, например git add -p ,Показать файлы, которые находятся в индексе Git и изменены в рабочей копии

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

vi fileWithBadWS.txt # leave bad whitespace 
vi fileWithGoodWS.txt # don't leave bad whitespace 
vi unrelatedFile.txt 

git add fileWithBadWS.txt fileWithGoodWS.txt 
git commit -m "Commited files, one with bad whitespace" # pre-commit hook fails 

РЭПО теперь выглядит следующим образом:

On branch master 
Changes to be committed: 

     modified: fileWithBadWS.txt # bad WS 
     modified: fileWithGoodWS.txt 

Changes not staged for commit: 

     modified: fileWithBadWS.txt # fixed WS 
     modified: unrelatedFile.txt         

можно использовать:

  • git diff см. fileWithBadWS.txt и unrelatedFile.txt
  • git diff --cached посмотреть поставленные файлы fileWithBadWS.txt и fileWithGoodWS.

Как я могу видеть только файлы, которые, как измененные в рабочей копии и постановке (т.е. просто fileWithBadWS.txt)?

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

ответ

3

Как насчет этого?

git diff --name-only --staged | xargs git diff --name-only

Это покажет вам файлы, которые постановочные, а также изменены в рабочем дереве.

+1

Для необычных имен файлов 'мерзавец дифф --name только --staged -z | xargs -0 git diff -name-only' будет лучше. – Roman

+0

Good catch @Roman :) –

1
git diff `git diff --name-only --cached` 

есть 2 части:

git diff --name-only --cached - получить имена файлов ступенчатого файлов

git diff file_list - список изменений в этих файлах

 Смежные вопросы

  • Нет связанных вопросов^_^