Есть ли в Git Add переключатель подробностей

105

Я нахожусь в процессе переноса всего моего частного публичного репо на github. Одно из решений, которое я принял, - использовать только консоль, поскольку это означает меньшую площадь инструмента, если мне когда-либо понадобится сменить ПК и т. Д.

Я был бы большим пользователем консольных приложений, и, будучи новичком в git, я решил приобрести серию Tekpub's Mastering Git, поскольку она показывает вам, как интегрировать git bash в качестве панели инструментов.

Все работает нормально, за исключением команды add all:

git add .

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

Я использую Visual Studio 2010 со стандартной установкой git (не расширений Git)

deanvmc
источник
(Да, это старый вопрос; я видел его, потому что он был только что отредактирован.) git add --helpПоказывает документацию для git addкоманды, включая --verboseпараметр.
Кейт Томпсон,
Новая мысль для старого вопроса - я предпочитаю, git add -Aчем git add .я не искал различий, но обнаружил, что моя предпочтительная команда с большей вероятностью добавит ВСЕ измененные или новые файлы.
всего

Ответы:

136

Для некоторых git-команд вы можете указать --verbose,

git 'command' --verbose

или

git 'command' -v.

Убедитесь, что переключатель находится после фактической команды git. Иначе - не пойдет!

Также полезно:

git 'command' --dry-run 
Сахил Мутху
источник
5
git 1.7.9 (cygwin) сообщает мне, что --verbose - неизвестный параметр
Рой Трулав
5
@RTruelove: вы могли бы использовать git --verbose addвместоgit add --verbose
Bogdan D
31

Я отлаживал проблему с помощью git, и мне нужен был очень подробный вывод, чтобы понять, что пошло не так. В итоге я установил GIT_TRACEпеременную среды:

export GIT_TRACE=1
git add *.txt

Вывод:

14:06:05.508517 git.c:415               trace: built-in: git add test.txt test2.txt
14:06:05.544890 git.c:415               trace: built-in: git config --get oh-my-zsh.hide-dirty
Аарон
источник
1
Бинго! Большое спасибо за эту переменную окружения!
Генри Ривера
3
Чтобы упростить задачу, можно написать так: GIT_TRACE=1 git add *.txtвсе в одной строке.
cristianoms
6

Что ж, как (почти) каждая консольная программа для unix-подобных систем, git ничего не сообщает вам, если команда выполнена успешно. Он что-то распечатывает, только если что-то не так.

Однако, если вы хотите быть уверены в том, что только что произошло, просто введите

git status

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

Поскольку вы, кажется, новичок в git, вот ссылка на бесплатную онлайн-книгу, которая знакомит вас с git. Это очень полезно, в нем рассказывается об основах, а также о различных хорошо известных рабочих процессах: http://git-scm.com/book

Риккардо Т.
источник
Из другого ответа я вижу, что есть способ заставить его рассказать вам, что происходит, но я предлагаю вам привыкнуть без параметра -v, поведение по умолчанию более практично (и его быстрее вводить).
Riccardo T.
//, я никогда раньше не слышал, что консольные программы для UNIX-подобных систем ничего не сообщают, если команда завершается успешно. Теперь, когда я это услышал, полагаю, это должно было быть для меня очевидно.
Натан Басанезе,
Это просто неправда! Git говорит мне о многом, если я использую его регулярно, даже если команды выполняются успешно. Например, он git commitсообщает мне, сколько строк и файлов было изменено, были ли созданы новые файлы, или git pushсообщает мне о ходе продвижения в апстрим.
LukeLR
5

Вы можете использовать его git add -iдля получения интерактивной версии git add, хотя это не совсем то, что вам нужно. Самое простое, что можно сделать - это после того, как вы git addзакончите, git statusпосмотреть, что поставлено, а что нет.

Использование git add .не рекомендуется, если это не ваша первая фиксация. Обычно лучше явно указать файлы, которые вы хотите разместить, чтобы случайно не начать отслеживать нежелательные файлы (временные файлы и т. Д.).

Мат
источник
1
Просто используйте .gitconfig для определения исключений, нет необходимости отслеживать вручную.
Стив К.