ฉันรู้ว่านี้เป็นคำตอบที่ดึกมาก แต่คำถามนี้จริงๆหลงโน้ตกับผมเพราะผมได้รับการจัดการกับความทุกข์ทรมานจากชนิดของการทำซ้ำนี้ค่อนข้างขณะนี้
ฉันไม่แน่ใจเกี่ยวกับคุณ แต่ฉันไม่ต้องการ (ฉันทำซ้ำไม่ได้ ) ต้องการสร้างนามแฝงสำหรับทุกgit
คำสั่งดังนั้นแทนที่จะเขียนสคริปต์ไพธ อนชื่อ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'
โชคดี.