나는 이것이 매우 늦은 대답이라는 것을 알고 있지만,이 질문은 지금 꽤 오랫동안 이런 종류의 반복 으로 고통 받고 있기 때문에 나에게 메모를 쳤다 .
나는 당신에 대해 확실 하지 않지만 솔직히 모든 명령에 대해 별칭을 만들고 싶지 는 않지만 ( DO N'T 반복 하지 않음 ) 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)
노깃 은 "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'
행운을 빕니다.