Ich weiß, dass dies eine sehr späte Antwort ist, aber diese Frage hat mich wirklich beeindruckt, weil ich mich schon seit einiger Zeit mit dieser Art von Wiederholung beschäftige.
Ich bin mir nicht sicher, aber ich möchte ehrlich gesagt nicht (ich wiederhole NICHT ) Aliase für jeden git
Befehl erstellen. Stattdessen habe ich ein Python-Skript namens NoGit geschrieben , um dieses Problem zu lösen:
#!/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 ist ein einfaches Python-Skript, um die unnötige Wiederholung des Schlüsselworts "git" zu verhindern.
Dokumentation:
- Der
%undo
Befehl entfernt den letzten Befehl vom Stapel
- Der
%run
Befehl führt die Befehle im Stapel aus und löscht den Stapel
- Der
%exit
Befehl schließt die CLI, ohne etwas zu tun
- Drücken
ctr+c
ist dasselbe wie Laufen%run; %exit
- Das Skript speichert Befehle, die ausgeführt wurden, in einer Datei, die
git.history
im selben Ordner wie das Skript aufgerufen wird
- Sie können mehrere Befehle in einer Zeile mit einem Semikolon hinzufügen
- Sie können das Schlüsselwort
git
am Anfang des Befehls verwenden und das Skript wird es nicht duplizieren ( EG: git init
wird nicht git git init
)
Beispielbefehle:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Zusätzliche Informationen (für Linux-Benutzer):
Wenn Sie möchten, können Sie die .py
Erweiterung entfernen und in eine ausführbare Datei konvertieren, indem Sie:
mv ./git.py ./git
chmod +x ./git
Dann anstatt das Skript wie folgt aufzurufen:
python3 git.py
Sie würden dies stattdessen ausführen:
./git
Zusätzliche Informationen (für faule Leute):
Wenn Sie faul sind und kein a eingeben möchten, können ./
Sie dieses Skript in Ihren /bin/
Ordner verschieben und einen Alias dafür erstellen.
Wenn Sie wirklich sehr, sehr faul sind, verwenden Sie die folgenden Befehle:
sudo cp ./git /bin/nogit
sudo chmod +x /bin/nogit
alias nogit='/bin/nogit'
Wenn Sie wirklich, wirklich, wirklich faul sind, kopieren Sie den folgenden Einzeiler und fügen Sie ihn ein:
sudo cp ./git /bin/nogit && sudo chmod +x /bin/nogit && alias nogit='/bin/nogit'
Wenn Ihre Faulheit ein Niveau erreicht hat, das der Menschheit bisher unbekannt war, finden Sie hier eine kompaktere Version desselben Einzeilers:
sudo cp ./git /bin/nogit;sudo chmod +x /bin/nogit;alias nogit='/bin/nogit'
Viel Glück.