2013-11-20 2 views
3

Итак, я нахожусь на git. Я замечаю, что макет моей веб-страницы повсюду. Проект имеет кучу файлов *.css (всего около 8 в разных местах одного и того же репо). Я хотел бы проверить все фиксации этих файлов для филиала, в котором я нахожусь - за последние две недели,Проверка, когда был изменен выбор файлов

Возможно ли это?

Я знаю, что для одного файла, который я мог бы сделать:

git log -p ./reports/my.css 

Что такое лучший способ сделать это для всех CSS файлов в разных каталогах. Лучшее, что я получил до сих пор, чтобы сделать что-то вроде:

git log --since=2.weeks --name-status | grep -B 8 "css" 

т.е. я Grep бревна из последних 2-х недель, а затем я вытащить 8 строк перед тем, чтобы убедиться, что я получаю файл и зафиксируют информацию.

Спасибо.

+0

Просто перечислите их все. Возможно, вам повезло использовать '' * .css'' (обратите внимание на цитаты) – knittl

ответ

1

git log может получить список файлов, так что просто дать все соответствующие файлы в качестве аргументов:

git log -p ./reports/my.css ./anotherdir/his.css ./thirddir/their.css 
2

Это дополнение к другому ответу, который упомянул, что git log действительно имеет несколько аргументов файлов и может показать журнал всех коммитов, которые коснулись этих файлов.

Если вы хотите открыть для себя все * .css файлы при вызове этой команды в одном шаге, а затем использовать следующий find вызов:

find . -iname '*.css' -exec git log --since=2.weeks --name-status {} +

В простом английском языке, эта команда находит все файлы, оканчивающиеся. css, игнорируя регистр, в текущем рабочем каталоге и во всех подкаталогах и выполняет git log --since=2.weeks --name-status, передавая все имена файлов, найденные в качестве аргументов.

+0

super. Просто интересно, можете ли вы объяснить, что означают {} и + в заявлении? –

+1

На странице поиска man ... '-exec command {} + Этот вариант действия -exec выполняет указанную команду в выбранных файлах, но командная строка создается путем добавления каждого имени выбранного файла в конце; общее количество вызовов команды будет намного меньше количества совпадающих файлов. Командная строка построена почти так же, как xargs создает свои командные строки. Только один экземпляр «{}» разрешен внутри команды. Команда запускается в стартовом каталоге. ' – whaley

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