Могу ли я заставить git add -p немедленно завершать работу после добавления ханка?

С git add -p я могу добавлять отдельные блоки шаг за шагом.

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

Есть ли способ сделать это напрямую, вместо того, чтобы показывать следующий кусок и затем использовать "q"?

Я уже пробовал набирать «aq», но это не работает (и я не ожидал, что это сработает).


person donquixote    schedule 17.08.2019    source источник
comment
Почему бы вам не использовать клиент git вместо командной строки?   -  person x squared    schedule 18.08.2019
comment
@xsquared Надежность? Переносимость? Скорость? Лучшее понимание? Может, все? Просто догадываюсь.   -  person RomainValeri    schedule 18.08.2019
comment
И я предполагаю, что слишком многие люди используют git на CL без необходимости. Если речь идет о понимании, это прекрасный пример преимуществ графического интерфейса. Я узнаю о git гораздо больше, используя клиент smartgit, чем CL, потому что он визуализирует вещи. Он также показывает вам команды git, выполняемые для каждой операции графического интерфейса, если вы хотите знать. Но на самом деле то, что важно понимать в git, - это не палитра имён команд, а концепции, лежащие в их основе. Кроме того, проблема OP не существует при использовании клиента.   -  person x squared    schedule 18.08.2019
comment
Откуда вы знаете, что вам нужен именно первый кусок?   -  person evolutionxbox    schedule 18.08.2019
comment
@evolutionxbox не первый крючок. просто первый, где я выбираю y. Или тот, где я выбираю yq, что означает «да», и ухожу. Не существует, но вопрос в том, какое совпадение будет наиболее близким.   -  person donquixote    schedule 19.08.2019
comment
Вы, наверное, уже знаете это, но я нажимал y, а затем q.   -  person evolutionxbox    schedule 19.08.2019
comment
@xsquared Я использую cli, чтобы такие люди, как вы, не говорили мне, почему у вас нет cli? Или, если быть более серьезным: у cli vs client есть свои плюсы и минусы. Знакомство - это большая вещь, делать все с помощью клавиатуры, но также некоторые расширенные команды git, такие как rebase --rebase-merges, могут не полностью поддерживаться в клиенте. Возможно, я не дал клиентам git шанс, но я бы сказал, что на эти вопросы это в основном отвлечение.   -  person donquixote    schedule 19.08.2019
comment
@evolutionxbox вы имеете в виду y + Enter + q + Enter. Да, это работает, но это по-прежнему означает, что второй кусок попадает в мой мозг и в окно моего терминала.   -  person donquixote    schedule 19.08.2019
comment
@donquixote Это может быть не тот ответ, на который вы ожидали, но это правда, что вы боретесь с презентацией git cli, и именно поэтому существуют клиенты с графическим интерфейсом. Я не считаю неправильным предлагать альтернативное решение проблемы в комментарии… Я все же рекомендую вам взглянуть на smartgit, который даже более мощный, чем простой git.   -  person x squared    schedule 19.08.2019
comment
@xsquared как простое предложение в комментарии, конечно, для меня совершенно нормально. Иногда такие аргументы оформляются как попытка закрыть вопрос или изменить разговор. Чтобы понять этот абсурд, вы можете пойти на форум Linux и спросить: «Почему бы вам не купить Mac?». Я мог бы дать смартгиту шанс. Но правда в том, что я уже достаточно продуктивен со своим cli, я рассматриваю этот вопрос как микрооптимизацию.   -  person donquixote    schedule 19.08.2019


Ответы (1)


Одно временное решение: создайте псевдоним вроде этого (в ~ / .gitconfig):

[alias]
apd = "!git add -p; git diff --staged -U12"

По крайней мере, это позволяет вам видеть поэтапную разницу без прокрутки.

Любые другие ответы, конечно же, приветствуются.

person donquixote    schedule 17.08.2019
comment
Обновление: я использую этот новый псевдоним некоторое время, и я думаю, что это действительно хорошая идея. Фактически я переименовал его в ap. Я мог бы даже сделать его псевдонимом bash, поэтому мне даже не нужно больше набирать git :) - person donquixote; 19.08.2019
comment
даже не нужно больше набирать «git» - ›это заставило меня поискать, и я нашел этот QA: stackoverflow.com/questions/56505000/ Теперь пробуем git -ш. - person donquixote; 19.08.2019