Sei que essa é uma resposta muito tardia, mas essa pergunta realmente me chamou a atenção porque estou lidando com esse tipo de repetição há um bom tempo.
Não tenho certeza de você, mas sinceramente não (repito NÃO ) quero criar aliases para cada git
comando, então escrevi um script python chamado NoGit para resolver esse problema:
#!/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 é um script python simples para evitar a repetição desnecessária da palavra-chave "git".
Documentação:
- o
%undo
comando remove o último comando da pilha
- o
%run
comando executa os comandos na pilha e limpa a pilha
- o
%exit
comando fecha a CLI sem fazer nada
- pressionar
ctr+c
é o mesmo que correr%run; %exit
- o script salva comandos que foram executados em um arquivo chamado
git.history
na mesma pasta que o script
- você pode adicionar vários comandos em uma linha usando um ponto-e-vírgula
- você pode usar a palavra-chave
git
no início do comando e o script não a duplicará (por exemplo git init
, não se torna git git init
)
Comandos de exemplo:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Informações adicionais (para usuários do Linux):
Se você quiser, pode remover a .py
extensão e convertê-la em um executável usando:
mv ./git.py ./git
chmod +x ./git
Então, em vez de chamar o script assim:
python3 git.py
Você executaria isso:
./git
Informações adicionais (para pessoas preguiçosas):
Se você é preguiçoso e não deseja digitar um ./
, mova esse script para sua /bin/
pasta e crie um alias para ele.
Se você é realmente muito preguiçoso, use os seguintes comandos:
sudo cp ./git /bin/nogit
sudo chmod +x /bin/nogit
alias nogit='/bin/nogit'
Se você é realmente muito, muito preguiçoso, copie e cole a seguinte linha:
sudo cp ./git /bin/nogit && sudo chmod +x /bin/nogit && alias nogit='/bin/nogit'
Se sua preguiça atingiu níveis anteriormente desconhecidos para a humanidade, aqui está uma versão mais compacta da mesma linha:
sudo cp ./git /bin/nogit;sudo chmod +x /bin/nogit;alias nogit='/bin/nogit'
Boa sorte.