Мне интересно, есть ли способ избежать необходимости вводить слово git
в начале каждой команды Git.
Было бы хорошо, если бы был способ использовать git
команду только один раз в начале после открытия командной строки, чтобы войти в «режим Git» .
Например:
git>
После чего каждая команда, которую мы вводим, по умолчанию интерпретируется как команда Git.
Таким же образом, как мы используем оболочку MySQL для написания команд базы данных:
mysql>
Это избавит меня от необходимости печатать git
сотни раз в день.
ПРИМЕЧАНИЕ: я использую git-bash
, на Windows.
Ответы:
Вы можете попробовать Gitsh . Из их readme:
Или посмотрите на другие проекты, связанные там:
Примечание: сам этим не пользовался.
источник
repl(1)
это не ответ. Он ничего не выдает и не печатает. Он запускает программы.fork()
/exec()
), поэтомуrepl(1)
даже не делает этого .IO
действия и выполнять их, включая побочные эффекты, такие как печать на экране, подключенном к терминалу.repl
- это не отдельный REPL; это средство создания системы REPL, в которойrepl
есть только интерактивный компонент. Это справедливо?Однострочник Perl, который сделает это:
Это будет выполнять все, что вы печатаете, с префиксом
git
. И это будет продолжаться до тех пор, пока вы не нажмете^D
.источник
-ne
флаги Perl )perl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'
Это не совсем то, что вы просите, но вы можете настроить некоторые псевдонимы оболочки для своих
~/.bashrc
команд Git, которые вы используете чаще всего:Также обратите внимание, что вы можете создавать псевдонимы внутри самого Git:
Это позволяет вам печатать
git ci
вместоgit commit
, и так далее.источник
git hash-object
илиgit interpret-trailers
? Я просто предлагаю это в качестве альтернативы, потому что, насколько я знаю, вопрос, о котором идет речь, на самом деле не существует.ci
forcommit
я также использую псевдоним оболочкиg
дляgit
, это уменьшает большую часть набора текста и позволяет мне оставаться в моей предпочитаемой оболочке.Я большой поклонник использования псевдонимов в ~ / .bash_profile для моего GitBash. Если вы используете этот подход, вот некоторые из моих любимых:
источник
commit
илиpush
потому что хочу, чтобы несколько дополнительных секунд (при наборе текста) были уверены, что я что-то не уничтожаюИспользуйте свой редактор.
Введите команду like
commit
из вашего любимого редактора, например vs code, и будьте эффективнее с git:Или введите,
git
чтобы получить все команды:источник
Мой друг сделал небольшой скрипт bash, который выполняет это. Это называется Replify .
источник
eval
в исходном скрипте не является лучшей идеей. Скажи другу, чтобы использоватьwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
вместоВот другой способ. Это также не совсем то, о чем спрашивали, но я уже некоторое время пользуюсь им, и это довольно мило. Добавьте следующую строку в ваш
~/.bashrc
:Теперь, нажав клавишу Tab в пустой строке Bash, выведите «git».
источник
~/zshrc
~/tcshrc
Я знаю, что это очень запоздалый ответ, но этот вопрос поразил меня, потому что я имел
дело стакими повторениями.Я не уверен в вас, но, честно говоря, я не хочу (я повторяю, НЕ ) создавать псевдонимы для каждой
git
команды, поэтому вместо этого я написал скрипт на языке Python под названием NoGit для решения этой проблемы:NoGit - это простой скрипт на python, предотвращающий ненужное повторение ключевого слова "git".
Документация:
%undo
команда удаляет последнюю команду из стека%run
команда запускает команды в стеке и очищает стек%exit
команда закрывает CLI , ничего не делаяctr+c
такое же, как бег%run; %exit
git.history
в той же папке, что и скриптgit
в начале команды и сценарий не будет дублировать его ( EG:git init
не станетgit git init
)Примеры команд:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Дополнительная информация (для пользователей Linux):
Если вы хотите, вы можете удалить
.py
расширение и преобразовать его в исполняемый файл, используя:Тогда вместо вызова скрипта вот так:
Вы бы запустили это вместо:
Дополнительная информация (для ленивых):
Если вы ленивы и не хотите печатать,
./
вы можете переместить этот скрипт в свою/bin/
папку и создать для него псевдоним.Если вы действительно очень ленивы, используйте следующие команды:
Если вы действительно, очень, очень ленивый, скопируйте и вставьте следующую строку:
Если ваша лень достигла уровней, ранее неизвестных человечеству, вот более компактная версия того же однострочного:
Удачи.
источник
Другой подход, который будет работать с любыми командами: используйте Ctrl + R (reverse-i-search).
Обратный i-search позволяет вам искать историю команд. Повторите Ctrl + R после нажатия строки поиска, чтобы повторить поиск далее с той же строкой.
Вам нужно набрать команду только один раз, затем вы можете вызвать ее из любой подстроки команды. В большинстве случаев вы можете вспомнить целые очень длинные команды и их различные варианты с помощью всего двух-трех правильно расположенных поисковых букв. Никаких предварительных настроек не требуется, кроме обычного использования вашей оболочки, и она самоадаптируется к тому, как вы использовали оболочку, просто введите полную команду один раз, и команды будут автоматически добавлены в историю команд.
git commit --amend
:<Ctrl+R>am
git pull
:<Ctrl+R>pu
git rebase --rebase-merges -i --onto origin/develop origin/develop feature/blue-header
:<Ctrl+R>blu
git rebase --abort
:<Ctrl-R>ab
git rebase --continue
:<Ctrl-R>con
docker-compose stop && git pull && make && docker-compose up -d
:<Ctrl-R>up
Более того, Ctrl-R работает не только на bash, но и на многих программах, использующих библиотеку readline (а их много), таких как оболочка Python, IPython, оболочка mysql, оболочка psql, irb (ruby) и т. Д.
источник
В вашем примере вы сравниваете его с приглашением MySql. Это работает так, что запускается процесс MySql, и вы даете свои команды этому процессу. Как так, почему бы не написать что-то похожее на выбранном вами языке? Вот простой пример в C ++:
Обратите внимание, что я только что написал это по памяти, и что я не проверял это с помощью компилятора. Там могут быть тривиальные синтаксические ошибки.
источник
Для базовых вещей вы можете сделать:
Выход с помощью Ctrl + C
источник
;
после do делает следующееbash: syntax error near unexpected token
: «Во-вторых,eval
часть подвержена уязвимостям. Например, рассмотрим, что произойдет, если я введуstatus;cat /etc/passwd
в эту небольшую оболочку. Пример безвреден, но вы понимаете, что может произойти. Вы можете упростить это вwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
Конечно, это не является пуленепробиваемым, но 1 - это проще и 2 - позволяет избежать выполнения не git-команд (благодаря двойным кавычкам). Не идеал, просто чуть лучшеsystem
или\!
в начале. Если можно предположить, что этот «repl» выполняетgit
только команды, он на самом деле допускает нечто большее.eval
не самая лучшая идея для запуска команд, особенно когда задействован контролируемый пользователем ввод.do
. Спасибо! re: security: Это явно не предназначено для распространения как отдельное приложение. Просто вставьте свой,.bash_profile
если вам не нравится печатать git. Я не слишком беспокоюсь о том, что это «небезопасно». Если вы вставите в свой bash вещи, которые вы не понимаете (включая этот скрипт oneliner), у вас будет плохое время. Мне это нравится, потому что это просто, легко написать, легко прочитать и легко улучшить.Когда я использовал Windows 7 с Conemu, я добавил в скрипт запуска среды разработки следующее:
При этом я мог бы просто использовать
g
команду вместо вводаgit
. Последний раз я пробовал с Windows 10 и Conemu, он не работал, есть ошибка, я думаю, но попробовать стоит.источник
Используйте редактор скобок, это легко использовать ваш код и команды git, он также имеет много функций.
В верхнем правом углу второй значок бинокля используется для установки расширений.
Найдите расширение,
brackets git
как на картинке выше, и установите его.Снова в верхнем правом углу появится четвертый значок, поэтому просто нажмите и увидите изменения, как на изображении выше.
Если вы хотите установить скобки, используйте следующие команды:
Для получения дополнительной информации вы можете прочитать: Как установить редактор скобок в Ubuntu и Linux Mint в Ubuntupit .
источник