Я знаю, что это очень поздний ответ, но этот вопрос поразил меня, потому что я имел дело с , страдающим от такого рода повторений уже довольно давно.
Я не уверен в вас, но, честно говоря, не (повторяю НЕ ) не хотят создавать псевдонимы для каждой команды git
, поэтому вместо этого я написал PythonСценарий NoGit для решения этой проблемы:
#!/usr/bin/env python
import sys, os, signal, atexit, readline, subprocess
commands, stop, history_file = [], False, os.path.join(os.getcwd(), "git.history")
def run_commands():
stop = True
for cmd in commands:
command = ["git" if not cmd.startswith("git ") else ""]
command = [cmd] if command[0] == "" else [command[0], cmd]
subprocess.Popen(command).communicate()
commands = []
def signal_handler(sig, frame):
run_commands()
sys.exit(0)
try:
readline.read_history_file(history_file)
signal.signal(signal.SIGINT, signal_handler)
while True:
if stop == True:
break
command = input("git> ")
if command == "%undo":
commands.pop()
elif command == "%run":
run_commands()
elif command == "%exit":
sys.exit(0)
else:
commands += [cmd.strip() for cmd in command.split(";")]
signal.pause()
readline.set_history_length(-1)
except IOError:
pass
atexit.register(readline.write_history_file, history_file)
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
расширение и преобразование его в исполняемый файл, используя:
mv ./git.py ./git
chmod +x ./git
Затем вместо вызова сценария, например:
python3 git.py
Вместо этого вы запустите:
./git
Дополнительная информация (для ленивых людей):
Если вы ленивы и не хотите вводить ./
, вы можете переместить этот скрипт в папку /bin/
и создать псевдонимдля этого.
Если вы действительно , действительно ленивый, используйте следующие команды:
sudo cp ./git /bin/nogit
sudo chmod +x /bin/nogit
alias nogit='/bin/nogit'
Если вы действительно, действительно, действительно ленивый, скопируйтеи вставьте следующий однострочный текст:
sudo cp ./git /bin/nogit && sudo chmod +x /bin/nogit && alias nogit='/bin/nogit'
Если ваша лень достигла уровней, ранее неизвестных человечеству, вот более компактная версия того же однострочного:
sudo cp ./git /bin/nogit;sudo chmod +x /bin/nogit;alias nogit='/bin/nogit'
Удачи.