私は、これは非常に遅く答えである知っているが、私はしてきたので、この質問は本当に私と一緒にノートを打たを扱う今はかなりしばらくの間、繰り返しのこの種の苦しみ。
私はあなたのことはわかりませんが、正直に言って(私は繰り返しません)すべてのgit
コマンドのエイリアスを作成したくないので、代わりにこの問題を解決するためにNoGitと呼ばれるpythonスクリプトを書きました:
#!/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は、「git」キーワードの不要な繰り返しを防ぐための単純なPythonスクリプトです。
ドキュメンテーション:
%undo
コマンドはスタックから最後のコマンドを削除します
%run
このコマンドは、スタック内のコマンドを実行し、スタックをクリア
- の
%exit
コマンドは何もせずにCLIを閉じ
- 押すこと
ctr+c
は実行することと同じです%run; %exit
- スクリプトは、呼び出されたファイルに実行されたコマンドを保存します
git.history
と同じフォルダーにあるれ
- セミコロンを使用して1行に複数のコマンドを追加できます
git
コマンドの最初にキーワードを使用でき、スクリプトはそれを複製しません(例:に 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'
幸運を。