Gostaria de saber se há uma maneira de evitar ter que digitar a palavra git
no início de cada comando do Git.
Seria bom se houvesse uma maneira de usar o git
comando apenas uma vez no início, depois de abrir um prompt de comando para entrar no "modo Git" .
Por exemplo:
git>
Após o qual todo comando digitado é interpretado por padrão como um comando Git.
De maneira semelhante à forma como usamos o shell do MySQL para escrever comandos no banco de dados:
mysql>
Isso me impedirá de digitar git
centenas de vezes por dia.
NOTA: Estou usando git-bash
, no Windows.
Respostas:
Você pode tentar o gitsh . De seu leia-me:
Ou dê uma olhada nos outros projetos vinculados lá:
Nota: Não usei isso sozinho.
fonte
repl(1)
não é um REPL. Não avalia nem imprime nada. Ele executa programas.fork()
/exec()
), portanto,repl(1)
nem faz isso .IO
ações e executá-las incluindo efeitos colaterais, como impressão na tela conectada ao terminal.repl
não é um REPL autônomo; é um meio de criar um sistema REPL no qualrepl
é apenas o componente interativo. Isto é Justo?Um one-liner Perl que fará isso:
Isso executará o que você digitar, com o prefixo
git
. E continuará fazendo isso até você bater^D
.fonte
-ne
bandeiras do Perl ).perl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'
Não é exatamente isso que você está pedindo, mas você pode configurar alguns aliases de shell nos
~/.bashrc
comandos Git que você usa com mais freqüência:Observe também que você pode criar aliases no próprio Git:
Isso permite que você digite em
git ci
vez degit commit
e assim por diante.fonte
git hash-object
ougit interpret-trailers
? Só estou oferecendo isso como uma alternativa, porque, até onde eu sei, o que a pergunta está pedindo realmente não existe.ci
forcommit
eu também uso um apelido de shellg
paragit
, isso reduz a maior parte da digitação e permite que eu permaneça no meu shell preferido.Eu sou um grande fã de usar aliases em ~ / .bash_profile para o meu GitBash. Se você seguir essa abordagem, aqui estão alguns dos meus favoritos:
fonte
commit
oupush
desde que eu quero alguns segundos extra (enquanto digitação) para ter certeza que eu não estou destruindo algoUse seu editor.
Digite o comando como
commit
em seu editor favorito, como código vs, e seja mais eficiente com o git:Ou digite
git
para obter todos os comandos:fonte
Um amigo meu fez um pequeno script do bash que faz isso. Chama-se Replify .
fonte
eval
no código-fonte original do script não é a melhor ideia. Diga ao seu amigo para usar emwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
vez dissoAqui está outro caminho. Também não foi exatamente o que foi solicitado, mas eu o uso há algum tempo e é muito bom. Adicione a seguinte linha ao seu
~/.bashrc
:Agora, pressionando Tab em um prompt vazio do Bash, digite "git".
fonte
~/zshrc
, para o tcsh, o colocará~/tcshrc
, etc.Sei que essa é uma resposta muito tardia, mas essa pergunta realmente me chamou a atenção porque estou
lidando comesse 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:NoGit é um script python simples para evitar a repetição desnecessária da palavra-chave "git".
Documentação:
%undo
comando remove o último comando da pilha%run
comando executa os comandos na pilha e limpa a pilha%exit
comando fecha a CLI sem fazer nadactr+c
é o mesmo que correr%run; %exit
git.history
na mesma pasta que o scriptgit
no início do comando e o script não a duplicará (por exemplogit init
, não se tornagit 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:Então, em vez de chamar o script assim:
Você executaria isso:
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:
Se você é realmente muito, muito preguiçoso, copie e cole a seguinte linha:
Se sua preguiça atingiu níveis anteriormente desconhecidos para a humanidade, aqui está uma versão mais compacta da mesma linha:
Boa sorte.
fonte
Outra abordagem que funcionará com qualquer comando: use Ctrl + R (pesquisa reversa-i).
A pesquisa inversa-i permite pesquisar seu histórico de comandos. Repita Ctrl + R depois de pressionar sua sequência de pesquisa para repetir a pesquisa ainda mais com a mesma sequência.
Você só precisa digitar um comando uma vez, para recuperar esse comando a partir de qualquer substring do comando. Na maioria dos casos, você pode recuperar comandos muito longos e suas diversas variantes com apenas duas a três letras de pesquisa bem posicionadas. Nenhuma pré-configuração é necessária além do uso normal do shell e é auto-adaptável à forma como você usou o shell, basta digitar o comando completo uma vez e os comandos serão automaticamente adicionados ao seu histórico de comandos.
git commit --amend
:<Ctrl+R>am
git pull
:<Ctrl+R>pu
git rebase --rebase-merges -i --onto origin/develop origin/develop feature/blue-header
:<Ctrl+R>blu
git rebase --abort
:<Ctrl-R>ab
git rebase --continue
:<Ctrl-R>con
docker-compose stop && git pull && make && docker-compose up -d
:<Ctrl-R>up
Além disso, o Ctrl-R funciona não apenas no bash, mas em muitos programas que usam a biblioteca readline (e existem muitos), como shell Python, IPython, shell mysql, shell psql, irb (ruby), etc.
fonte
No seu exemplo, você o compara com um prompt do MySql. A maneira que funciona é que um processo MySql é iniciado e você fornece seus comandos para esse processo. Como tal, por que não escrever algo semelhante no seu idioma de escolha? Aqui está um exemplo simples em C ++:
Observe que acabei de escrever isso de memória e que não o verifiquei com um compilador. Pode haver erros de sintaxe triviais.
fonte
Para coisas básicas, você pode fazer:
Sair com ctrl + c
fonte
;
depois do leva abash: syntax error near unexpected token
; `` Segundo, aeval
parte é propensa a vulnerabilidades. Por exemplo, considere o que acontece se eu digitarstatus;cat /etc/passwd
esse pequeno shell. Exemplo inofensivo, mas você entendeu o que pode acontecer. Você pode simplificar isso emwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
Isso obviamente não é à prova de balas, mas 1 - é mais simples e 2 - evita a execução de comandos não-git (em virtude de aspas duplas). Não é o ideal, apenas um pouco melhorsystem
ou\!
no começo pelo menos. Onde a suposição pode ser que esse "repl" executegit
apenas comandos, na verdade permite mais do que isso.eval
não é a melhor idéia para executar comandos, especialmente quando há entrada controlada pelo usuário.do
. Obrigado! re: security: obviamente não é para ser distribuído como um aplicativo separado. Basta colocar no seu.bash_profile
se você não gosta de digitar git. Eu não estou muito preocupado com isso ser "inseguro". Se você colar coisas no seu bash que não entende (incluindo esse script oneliner), terá um mau momento. Gosto disso porque é simples, fácil de escrever, de ler e de melhorar.Quando usei o Windows 7 com o Conemu, adicionei o seguinte ao meu script de inicialização do ambiente de desenvolvimento:
Com isso, eu poderia apenas usar o
g
comando em vez de digitargit
. A última vez que tentei com o Windows 10 e o Conemu, não funcionou, acho que há um bug, mas vale a pena tentar.fonte
Use um editor de colchetes, é fácil usar seus comandos code e git, também possui muitos recursos.
No canto superior direito, o segundo ícone binocular é usado para instalar extensões.
Procure a extensão
brackets git
como a imagem acima e instale-a.Novamente, no canto superior direito, o quarto ícone será exibido; basta clicar e ver as alterações, como na imagem acima.
Se você deseja instalar colchetes, use os seguintes comandos:
Para obter mais informações, você pode ler: Como instalar o Brackets Code Editor no Ubuntu e Linux Mint no Ubuntupit .
fonte