У Git Add є багатослівний перемикач


104

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

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

Все працює нормально, за винятком команди add all, яка є:

git add .

Здається, це працює, але я не знаю, чи працює він чи ні. Чи є багатослівний перемикач (я думаю, що так би його називали), який би сказав, які файли відслідковувались після запуску команди?

Я використовую Visual Studio 2010 зі стандартною установкою git (Not Git розширення)


(Так, це старе запитання; я бачив це, тому що він був щойно відредагований.) git add --helpПоказує документацію для git addкоманди, включаючи --verboseопцію.
Кіт Томпсон

Нова думка для старого питання - я віддаю перевагу git add -Aбільш git add .я не дивилася на відмінності, але виявила , що моя улюблена команда, швидше за все, додати всі змінені або нові файли.
виразно

Відповіді:


134

Для деяких git-команд можна вказати --verbose,

git 'command' --verbose

або

git 'command' -v.

Переконайтесь, що перемикач знаходиться після фактичної команди git. Інакше - не вийде!

Також корисно:

git 'command' --dry-run 

5
git 1.7.9 (cygwin) говорить мені, що --verbose - невідомий варіант
Roy Truelove

5
@RTruelove: ви можете використовувати git --verbose addзамістьgit add --verbose
Bogdan D

30

Я налагоджував проблему з 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, поведінка за замовчуванням більш практична (і її швидше набирати).
Ріккардо Т.

//, я ніколи раніше не чув про те, щоб консольні програми для UNIX-подібних систем нічого не говорили, якщо команда успішна. Тепер, коли я це почув, я вважаю, що це мало бути очевидним для мене.
Натан Басанес

Це просто неправда! Git мені багато говорить, якщо я регулярно ним користуюся, навіть якщо команди досягають успіху. Наприклад, git commitповідомляє мені, скільки рядків і файлів змінилося, якщо створені нові файли, або git pushінформує мене про хід підштовхування до верхів'я.
LukeLR

5

Ви можете використовувати git add -iінтерактивну версію git add, хоча це не зовсім те, що ви шукаєте. Найпростіше це зробити після git addредагування, git statusщоб побачити, що ставиться чи ні.

Використовувати git add .насправді не рекомендується, якщо це не ваш перший вчинок. Зазвичай краще чітко перераховувати файли, які ви хочете інсценізувати, щоб ви не почали випадково відслідковувати непотрібні файли (тимчасові файли тощо).


1
Просто використовуйте .gitconfig для визначення винятків, не потрібно відстежувати їх вручну.
Стів К
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.