Пожалуйста, уточните?
Вы все равно должны набрать {1} или {2}, что является неуклюжим и очень подвержено ошибкам.
Возможно, вы захотите реализовать нечеткий / инкрементальный поиск на вашем любимом языке.Или просто убедитесь, что все «негодяи», которые вы, очевидно, никогда не интересуетесь обновлением, не находятся в списке в первую очередь (.gitignore)
Вот грубый удар по быстрой функции bash с именем 'scommit '(smart commit?):
#!/bin/bash
function scommit()
{
set -e
local PS3='add (or Ctrl-D)? '
local arguments
if [[ $# -lt 1 ]];
then arguments='.*'
else arguments=( "$@" )
fi
function grepmodified() { git ls-files -m | egrep "${arguments[@]}"; }
function pickone()
{
if [[ $# -ge 1 ]]; then
select path in "$@";
do git add -- "$path"; break;
done;
else
return 1;
fi
}
while pickone $(grepmodified); do continue; done
}
Вы можете использовать его следующим образом (обратите внимание, как флаг -i передается egrep, делая его без учета регистра):
$ scommit -i bi
1) main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.KeyBindingsPanel.cs
2) main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.OptionPanels.CombineBuildOptionsWidget.cs
add (or Ctrl-D)? 1
1) main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.OptionPanels.CombineBuildOptionsWidget.cs
add (or Ctrl-D)? 1