В Git, как я могу подготовить файл, который я только что отправил, без указания файла? - PullRequest
5 голосов
/ 10 февраля 2011

Я часто проверяю файл, решаю, что это то, что я подготовлю, а затем мне нужно запустить git add /long/path/to/file, чтобы вручную указать файл.

Обычный рабочий процесс будет проходить по следующим направлениям:

git status

«ооо меняется»

git diff /long/path/to/changed/file

«Да, я помню, что - время коммита!»

git add /long/path/to/changed/file

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

Поэтому я ищу какую-то волшебную команду unix или git, где я могу сказать: «Эй, этот файл, который я только что отправил -поставьте, пожалуйста! ".

Есть ли что-то подобное в Git или Bash?Или мне нужно что-то встроить в bash-скрипт?

Ответы [ 4 ]

14 голосов
/ 10 февраля 2011

Используйте

git add !$

Подробнее: http://www.cyberciti.biz/faq/shell-call-last-argument-of-preceding-command/

8 голосов
/ 10 февраля 2011

Вы можете использовать ярлыки оболочки bash.Например, введите:

git add Alt .

Alt . ярлык возвращает аргументы из предыдущей команды.Вы также можете повторить это для поиска аргументов в истории команд.

Бонусный материал ...

Если вы хотите чего-то более загадочного, попробуйте следующее:

[you@home]$ git diff /some/path/to/file
[you@home]$ ^diff^add

Из окончательного руководства по истории командной строки bash :

Возможно, наиболее интересным указателем события является тот, который находится в форме '^ string1 ^ string2^ ', который принимает последнюю команду, заменяет string1 на string2 и выполняет ее.

Использование ^diff^add, хотя и забавно, может бытьболь набирать.И это не может быть использовано в псевдониме.Смотрите мой другой ответ для альтернативы.

3 голосов
/ 10 февраля 2011

Добавьте следующее к вашему .bashrc:

alias addiff='fc -s "git diff=git add"'

Теперь у вас есть команда addiff, которая при использовании после git diff преобразует ее в git add.

[you@home]$ git diff /some/path/to/file
[you@home]$ addiff

fc (сокращение от Fix Command) - встроенная команда bash. При использовании без параметров он позволяет редактировать предыдущую команду перед повторным выполнением. Использование опций -s позволяет указать шаблон без обращения к текстовому редактору.

Для более общего использования fc добавьте alias r='fc -s' к своему .bashrc. Затем вы можете использовать его так:

[you@home]$ r # repeat the previous command

[you@home]$ r git # repeat the last command containing the word "git"

[you@home]$ r foo=bar # repeat the last command, replace "foo" with "bar"
0 голосов
/ 03 июля 2013

Вы можете попробовать использовать:

git add .

Эта командная строка добавляет все новые файлы в текущий рабочий каталог без указания имен файлов или пути к файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...