मैं जानता हूँ कि यह एक बहुत ही देर से जवाब है, लेकिन इस सवाल का वास्तव में मेरे साथ एक नोट मारा क्योंकि मैं किया गया है के साथ काम कर दुख पुनरावृत्ति इस तरह से एक काफी के लिए है, जबकि अब।
मुझे यकीन है कि आप के बारे में नहीं कर रहा हूँ, लेकिन मैं ईमानदारी से नहीं है (मैं फिर कहता हूँ ऐसा नहीं ) हर कल्पित नामों का निर्माण करना चाहते हैं 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 "git" कीवर्ड के अनावश्यक पुनरावृत्ति को रोकने के लिए एक सरल अजगर स्क्रिप्ट है।
प्रलेखन:
%undoआदेश ढेर से पिछले आदेश को हटा
%runआदेश ढेर में कमांड चलाता है और ढेर को साफ करता है
%exitआदेश कुछ भी करने के बिना CLI बंद कर देता है
- दबाने
ctr+cपर चलने जैसा ही है%run; %exit
- स्क्रिप्ट उन कमांड्स को सेव करती है, जिन्हें स्क्रिप्ट
git.historyके समान फ़ोल्डर में फाइल में निष्पादित किया गया था
- आप एक अर्ध-उपनिवेश का उपयोग करके एक पंक्ति में कई कमांड जोड़ सकते हैं
- आप
gitकमांड की शुरुआत में कीवर्ड का उपयोग कर सकते हैं और स्क्रिप्ट इसे डुप्लिकेट नहीं करेगी ( जैसे: git init यह नहीं बनता है git git init)
उदाहरण के आदेश:
init
add .
stage .
commit -m "inital commit"
%run; %exit
अतिरिक्त जानकारी (लिनक्स उपयोगकर्ताओं के लिए):
यदि आप चाहते हैं कि आप .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'
सौभाग्य।