2016-05-18 1 views
1

Я пытаюсь найти способ получить git, чтобы показать список изменений «только имя» между 2 фиксировать точки (быть тегами или ветвями) для определенного подмодуля.Как показать git diff - имя-только между двумя ветвями для определенного модуля (или нескольких модулей) в репо

Я могу сделать это легко с помощью git diff для одного репо, выполнив следующие действия:

git diff --name-only commitPointA..commitPointB 

(Вот another answer, что говорит об этом в справочных целях)

Но это перечисляет все изменения файлов для репозитория, в котором я запускаю команду внутри.

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

+0

Определить «модуль». Гит знает о «файлах» как хранится в «деревьях»; если вы хотите разграничить определенный файл или дерево, просто добавьте это в команду 'git diff' (см. аргумент' - '). – torek

+0

@torek Я имел в виду модуль, описанный в http://stackoverflow.com/tags/module/info. Спасибо, спасибо. – Jeremy

+0

Эта особая форма или стиль модуля (обработка дерева как контейнера для коллекции) является одним из способов сделать модули, но не единственным способом. (Хотя в старые добрые времена мы имели альтернативные слова для наборов файлов, которые составляли логические группы.) – torek

ответ

1

@torek указал мне в правильном направлении, предлагая посмотреть на аргумент <path>. Вот что я сделал, чтобы получить уточненный список по модулю.

Изменения в одном модуле ...

git diff --name-only commitPointA..commitPointB ./moduleA 

Изменения в нескольких модулях ...

git diff --name-only commitPointA..commitPointB ./moduleA ./moduleB 

Его, вероятно, стоит о том, что здесь имя модуля просто представляет имя корневой папки для этого модуля в рамках репо.

Все, просто в конце.


Альтернатива указания по пути, это просто труба выхода через grep и указать то, что вы знаете, что вы действительно заинтересованы в как имя модуля (я знаю, это звучит очевидно).

Вот простой пример:

git diff --name-only commitPointA..commitPointB | grep 'module-name' 

Вы могли бы расширить этот поиск нескольких значений, а также, просто проверка на grep man page для получения дополнительной информации.

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