Je me demande s'il existe un moyen d'éviter d'avoir à taper le mot git
au début de chaque commande Git.
Ce serait bien s'il y avait un moyen d'utiliser la git
commande une seule fois au début après avoir ouvert une invite de commande pour passer en "mode Git" .
Par exemple:
git>
Après quoi, chaque commande que nous tapons est interprétée par défaut comme une commande Git.
D'une manière similaire à la façon dont nous utilisons le shell MySQL pour écrire des commandes de base de données:
mysql>
Cela m'évitera d'avoir à taper des git
centaines de fois par jour.
REMARQUE: j'utilise git-bash
, sous Windows.
Réponses:
Vous voudrez peut-être essayer gitsh . De leur readme:
Ou jetez un œil aux autres projets qui y sont liés:
Remarque: je ne l'ai pas utilisé moi-même.
la source
repl(1)
n'est pas une REPL. Il n'évalue ni n'imprime rien. Il exécute des programmes.fork()
/exec()
), doncrepl(1)
n'est pas fait même que .IO
actions et les exécutera, y compris des effets secondaires tels que l'impression sur l'écran connecté au terminal.repl
n'est pas une REPL autonome; c'est un moyen de créer un système REPL dans lequelrepl
n'est que le composant interactif. Est-ce juste?Un one-liner Perl qui fera ceci:
Cela exécutera tout ce que vous tapez, préfixé par
git
. Et il continuera à le faire jusqu'à ce que vous frappiez^D
.la source
-ne
drapeaux de Perl ).perl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'
Ce n'est pas exactement ce que vous demandez, mais vous pouvez configurer des alias de shell dans votre
~/.bashrc
pour les commandes Git que vous utilisez le plus fréquemment:Notez également que vous pouvez créer des alias dans Git lui-même:
Cela vous permet de taper
git ci
au lieu degit commit
, et ainsi de suite.la source
git hash-object
ougit interpret-trailers
? Je propose simplement cela comme une alternative parce que pour autant que je sache, ce que la question demande n'existe pas vraiment.ci
for,commit
j'utilise également un alias de shellg
pourgit
, cela réduit la plupart du temps de frappe et me permet de rester dans mon shell préféré.Je suis un grand fan de l'utilisation d'alias dans ~ / .bash_profile pour mon GitBash. Si vous optez pour cette approche, voici quelques-uns de mes favoris:
la source
commit
oupush
puisque je veux quelques secondes supplémentaires (en tapant) pour être sûr de ne pas détruire quelque choseUtilisez votre éditeur.
Tapez la commande comme
commit
dans votre éditeur préféré comme vs code et soyez plus efficace avec git:Ou tapez
git
pour obtenir toutes les commandes:la source
Un de mes amis a fait un petit script bash qui accomplit cela. Cela s'appelle Replify .
la source
eval
dans la source du script d'origine n'est pas la meilleure idée. Dites à votre ami d'utiliser à lawhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
placeVoici une autre manière. Ce n'est pas non plus tout à fait ce qui a été demandé, mais je l'utilise depuis un certain temps et c'est plutôt sympa. Ajoutez la ligne suivante à votre
~/.bashrc
:Maintenant, en appuyant sur Tab à une invite Bash vide, vous tapez "git".
la source
~/zshrc
, pour tcsh, vous le mettrez~/tcshrc
, etc.Je sais que c'est une réponse très tard , mais cette question vraiment frappé une note avec moi parce que j'ai
affaire àla souffrance de ce genre de répétition pour un certain temps maintenant.Je ne suis pas sûr de vous mais honnêtement, je ne veux pas (je répète NE PAS ) créer des alias pour chaque
git
commande, alors j'ai plutôt écrit un script python appelé NoGit pour résoudre ce problème:NoGit est un simple script python pour éviter la répétition inutile du mot-clé "git".
Documentation:
%undo
commande supprime la dernière commande de la pile%run
commande exécute les commandes dans la pile et efface la pile%exit
commande ferme la CLI sans rien fairectr+c
équivaut à courir%run; %exit
git.history
dans le même dossier que le scriptgit
au début de la commande et le script ne le dupliquera pas ( EG:git init
ne devient pasgit git init
)Exemples de commandes:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Informations supplémentaires (pour les utilisateurs Linux):
Si vous le souhaitez, vous pouvez supprimer l'
.py
extension et la convertir en exécutable en utilisant:Alors au lieu d'appeler le script comme ceci:
Vous exécuteriez ceci à la place:
Informations supplémentaires (pour les paresseux):
Si vous êtes paresseux et que vous ne voulez pas taper un,
./
vous pouvez déplacer ce script dans votre/bin/
dossier et créer un alias pour celui-ci.Si vous êtes vraiment, vraiment paresseux, utilisez les commandes suivantes:
Si vous êtes vraiment, vraiment, vraiment paresseux, copiez et collez le one-liner suivant:
Si votre paresse a atteint des niveaux auparavant inconnus de l'humanité, voici une version plus compacte du même one-liner:
Bonne chance.
la source
Une autre approche qui fonctionnera avec toutes les commandes: utilisez Ctrl + R (reverse-i-search).
La recherche inversée vous permet de rechercher dans l'historique de vos commandes. Répétez Ctrl + R après avoir appuyé sur votre chaîne de recherche pour répéter la recherche plus en arrière avec la même chaîne.
Vous n'avez besoin de taper une commande qu'une seule fois, puis vous pouvez rappeler cette commande à partir de n'importe quelle sous-chaîne de la commande. Dans la plupart des cas, vous pouvez rappeler des commandes très longues entières et leurs différentes variantes avec seulement deux à trois lettres de recherche bien placées. Aucune préconfiguration nécessaire autre que l'utilisation normale de votre shell et il s'adapte automatiquement à la façon dont vous avez utilisé le shell, tapez simplement la commande complète une fois et les commandes seraient automatiquement ajoutées à votre historique de commandes.
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
De plus, Ctrl-R ne fonctionne pas seulement sur bash, mais sur de nombreux programmes utilisant la bibliothèque readline (et il y en a beaucoup), comme le shell Python, IPython, mysql shell, psql shell, irb (ruby), etc.
la source
Dans votre exemple, vous le comparez à une invite MySql. La façon dont cela fonctionne est qu'un processus MySql démarre, et vous donnez vos commandes à ce processus. En tant que tel, pourquoi ne pas écrire quelque chose de similaire dans la langue de votre choix? Voici un exemple simple en C ++:
Veuillez noter que je viens de l'écrire de mémoire et que je ne l'ai pas vérifié avec un compilateur. Il peut y avoir des erreurs de syntaxe triviales.
la source
Pour les choses de base, vous pouvez faire:
Quitter avec ctrl + c
la source
;
après-faire mène àbash: syntax error near unexpected token
: `` Deuxièmement, laeval
pièce est sujette à des vulnérabilités. Par exemple, considérez ce qui se passe si je tapestatus;cat /etc/passwd
dans ce petit shell. Exemple inoffensif, mais vous avez l'idée de ce qui peut arriver. Vous pouvez simplifier cela enwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
Ceci bien sûr n'est pas à l'épreuve des balles, mais 1 - c'est plus simple et 2 - évite l'exécution de commandes non git (en vertu de doubles guillemets). Pas idéal, juste un peu mieuxsystem
ou\!
au début du moins. Là où l'hypothèse pourrait être que ce "repl" n'exécute que desgit
commandes, il permet en fait plus que cela.eval
n'est pas la meilleure idée pour exécuter des commandes, en particulier lorsque des entrées contrôlées par l'utilisateur sont impliquées.do
. Merci! re: security: Ceci n'est évidemment pas destiné à être distribué en tant qu'application distincte. Mettez simplement votre.bash_profile
si vous n'aimez pas taper git. Je ne suis pas trop préoccupé par le fait que ce soit «insécure». Si vous collez des éléments dans votre bash que vous ne comprenez pas (y compris ce script oneliner), vous allez passer un mauvais moment. J'aime cela parce que c'est simple, facile à écrire et à lire, et facile à améliorer.Lorsque j'ai utilisé Windows 7 avec Conemu, j'ai ajouté ce qui suit à mon script de démarrage d'environnement de développement:
Avec cela, je pourrais simplement utiliser la
g
commande au lieu de tapergit
. La dernière fois que j'ai essayé avec Windows 10 et Conemu, cela n'a pas fonctionné, il y a un bug, je pense, mais ça vaut le coup d'essayer.la source
Utilisez un éditeur de crochets, il est facile d'utiliser votre code et vos commandes git, il possède également de nombreuses fonctionnalités.
Dans le coin supérieur droit, la deuxième icône binoculaire est utilisée pour installer les extensions.
Recherchez l'extension
brackets git
comme l'image ci-dessus et installez-la.Encore une fois dans le coin supérieur droit, la quatrième icône apparaîtra, alors cliquez simplement et voyez les changements comme l'image ci-dessus.
Si vous souhaitez installer des crochets, utilisez les commandes suivantes:
Pour plus d'informations, vous pouvez lire: Comment installer l'éditeur de code Brackets dans Ubuntu et Linux Mint sur Ubuntupit .
la source