Я ищу команду Bash (или последовательность команд), которая печатает сводку того, какие файлы были изменены в рабочей копии Git. В сводке должно быть указано количество вставок и удалений в каждом файле и, возможно, они будут поставлены.Как получить резюме, подобное git add --interactive?
Команда git add --interactive
(которая является синонимом git add -i
) дает точное резюме, которое я хочу (плюс другие материалы). Проблема в том, что он не просто печатает и выходит, он запускает целую оболочку, отличную от Bash. Вот часть git add -i
, что мне нравится:
bash$ git add -i
staged unstaged path
1: unchanged +3/-0 trunk/src/analyzer.c
2: unchanged +5/-13 trunk/src/converter.c
Это большое резюме. К сожалению, после его распечатки вы не вернулись в Bash. Чтобы вернуться к Bash, вам нужно ввести q
и затем ввести, чтобы выйти. Я действительно хочу, чтобы он просто распечатывал сводку, а затем останавливался.
Вот что я пробовал:
Введите следующие команды в терминале Bash:
git add -i; q
. Это не работает, вам все равно нужно нажатьq
вручную, а затем он выдает ошибку из-за второгоq
.Поместите следующее в сценарий
gitsummary.sh
, а затем запустите его:git add -i
, с или без; q
в конце. Та же проблема.
Как я могу получить это резюме полностью не интерактивным способом? Я могу думать о двух возможных решений:
Используйте Bash трюк, который ждет долю секунды, а затем имитирует нажатие клавиши.
Используйте другую команду Git, которая печатает ту же информацию, но не запускает странную маленькую оболочку.
Моя основная настройка: Mac OS X 10.9 и Terminal (running/bin/bash).
Моя вторичная установка: Windows 7 или 8 и Cygwin работает Bash.
Задача 1: Обе эти команды полностью Опустить поставил файлы, и я действительно хочу, чтобы увидеть постановочные файлы тоже. Проблема 2. Обе эти команды не упоминают '??' файлы (я говорю о файлах, которые еще не отслеживаются, но также не игнорируются, т. Е. Новые файлы). Однако, спасибо за предложения. – SerMetAla
Это _closer_ к тому, что я хочу, но все же не то, что я хочу: 'git diff --numstat HEAD'. Мне не нравится 'git diff --stat HEAD', потому что он не перечисляет вставки и удаления отдельно, он, кажется, их объединяет, а затем показывает относительные пропорции знаков плюс и минус. – SerMetAla
@SerMetAla: Что бы вставляли/удаляли даже для невоспроизводимых файлов? Если вы действительно хотите их там, напишите сценарий, который объединяет вывод 'git diff' с чем-то, что подсчитывает количество строк в файлах без следа (используя' git ls-files -o', чтобы найти их). –