Saya tahu ini adalah jawaban yang sangat terlambat tetapi pertanyaan ini benar-benar menyentuh catatan saya karena saya telah berurusan dengan penderitaan dari pengulangan semacam ini untuk beberapa waktu sekarang.
Saya tidak yakin tentang Anda tetapi saya sejujurnya tidak (saya ulangi TIDAK ) ingin membuat alias untuk setiap git
perintah, jadi alih-alih saya menulis skrip python bernama NoGit untuk menyelesaikan masalah ini:
#!/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 adalah skrip python sederhana untuk mencegah pengulangan kata kunci "git" yang tidak perlu.
Dokumentasi:
- yang
%undo
perintah menghapus perintah terakhir dari stack
- yang
%run
perintah menjalankan perintah dalam stack dan membersihkan tumpukan
- yang
%exit
perintah menutup CLI tanpa melakukan apa-apa
- menekan
ctr+c
sama dengan menjalankan%run; %exit
- skrip menyimpan perintah yang dieksekusi ke file yang dipanggil
git.history
dalam folder yang sama dengan skrip
- Anda dapat menambahkan beberapa perintah dalam satu baris menggunakan tanda titik koma
- Anda dapat menggunakan kata kunci
git
di awal perintah dan skrip tidak akan menggandakannya ( EG: git init
tidak menjadi git git init
)
Contoh perintah:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Informasi tambahan (untuk pengguna Linux):
Jika mau, Anda dapat menghapus .py
ekstensi dan mengubahnya menjadi yang dapat dieksekusi menggunakan:
mv ./git.py ./git
chmod +x ./git
Maka alih-alih memanggil skrip seperti ini:
python3 git.py
Anda malah menjalankan ini:
./git
Informasi tambahan (untuk orang malas):
Jika Anda malas dan tidak ingin mengetik, ./
maka Anda dapat memindahkan skrip ini ke /bin/
folder Anda dan membuat alias untuk itu.
Jika Anda benar- benar malas, gunakan perintah berikut:
sudo cp ./git /bin/nogit
sudo chmod +x /bin/nogit
alias nogit='/bin/nogit'
Jika Anda benar- benar malas, salin dan tempel satu baris berikut:
sudo cp ./git /bin/nogit && sudo chmod +x /bin/nogit && alias nogit='/bin/nogit'
Jika kemalasan Anda telah mencapai tingkat yang sebelumnya tidak diketahui oleh manusia, berikut adalah versi yang lebih ringkas dari satu kalimat yang sama:
sudo cp ./git /bin/nogit;sudo chmod +x /bin/nogit;alias nogit='/bin/nogit'
Semoga berhasil.