git add -p --ignore-submodules? - PullRequest
       2

git add -p --ignore-submodules?

3 голосов
/ 04 августа 2011

Есть ли способ игнорировать грязные подмодули при использовании git add --patch?

Я установил ignore = dirty, как описано здесь .Кажется, это работает только с git status и git diff.Я люблю git add -p.Необходимость пропустить 10 грязных подмодулей каждый раз, когда я хочу добавить небольшое изменение, расстраивает меня.

Я еще не совсем понял git add -i, но похоже, что он обрабатывает грязные подмодули таким же образом.

Ответы [ 2 ]

1 голос
/ 03 февраля 2018

С Git 2.16.x / 2.17 вам даже не понадобится опция --ignore-submodules,
поскольку "git add -p" учили игнорировать локальные изменения в подмодулях как они не мешают частичному добавлению регулярных изменений в любом случае.

См. коммит 12434ef (13 января 2018 г.) Нгуен Тай Нгок Дуй (pclouds) .
(Объединено Junio ​​C Hamano - gitster - в коммит e7e8077 , 23 января 2018 г.)

add - интерактивный: игнорировать изменения подмодулей, кроме HEAD

Для 'add -i' и 'add -p' единственное действие, которое мы можем предпринять для грязного Запись подмодуля обновляет индекс новым значением из его HEAD.
Изменения содержимого внутри (из собственного индекса, неотслеживаемых файлов ...) не важно, по крайней мере, пока "git add -i" не узнает о запуске нового интерактивная сессия добавления внутри подмодуля.

Игнорировать все другие изменения подмодулей, кроме HEAD .
Это уменьшает количество записей, которые пользователь должен проверять в 'git add -i', и количество 'no', которое они должны ответить на 'git add -p', когда присутствуют грязные подмодули.

1 голос
/ 14 января 2013

Добавление тихо игнорировать обновления субмодуля, по словам Клинта, слишком опасно.

Я не знаю, как это сделать с помощью add --patch, но я могу довольно близко подойти с помощью add --edit и сопоставления клавиш vim:

map <Leader>\x :%!sed '/^diff --git/\!{H;$\!d};x;1{$\!d;x};/\nindex[^\n]*160000\n/d'<CR>

while будет отображать \\x для устранения всех блоков обновлений субмодуля. \! s в этом - специфичные для vim удары, уберите эти обратные слеши, чтобы использовать sed в другом месте.

...