Ich frage mich, ob es eine Möglichkeit gibt, zu vermeiden, dass das Wort git
am Anfang jedes Git-Befehls eingegeben werden muss.
Es wäre schön, wenn es eine Möglichkeit gäbe, den git
Befehl am Anfang nur einmal zu verwenden, nachdem eine Eingabeaufforderung geöffnet wurde, um in den "Git-Modus" zu gelangen .
Beispielsweise:
git>
Danach wird jeder von uns eingegebene Befehl standardmäßig als Git-Befehl interpretiert.
Ähnlich wie wir die MySQL-Shell zum Schreiben von Datenbankbefehlen verwenden:
mysql>
Dadurch muss ich nicht git
hunderte Male am Tag tippen .
HINWEIS: Ich verwende unter git-bash
Windows.
git
version-control
command-line-interface
git-bash
Nächtlich
quelle
quelle
Antworten:
Vielleicht möchten Sie Gitsh ausprobieren . Aus ihrer Readme:
Oder schauen Sie sich die anderen dort verlinkten Projekte an:
Hinweis: Ich habe das selbst nicht benutzt.
quelle
repl(1)
ist keine REPL. Es wird nichts ausgewertet oder gedruckt. Es werden Programme ausgeführt.fork()
/ geerbtexec()
), alsorepl(1)
tut es das nicht einmal .IO
Aktionen und führt diese aus, einschließlich Nebenwirkungen wie Drucken auf dem mit dem Terminal verbundenen Bildschirm.repl
ist keine eigenständige REPL; Es ist ein Mittel zum Erstellen eines REPL-Systems, in demrepl
nur die interaktive Komponente enthalten ist. Ist das fair?Ein Perl-Einzeiler, der dies tut:
Dies führt alles aus, was Sie eingeben, mit dem Präfix
git
. Und das wird so lange so bleiben, bis Sie treffen^D
.quelle
-ne
Flaggen ist).perl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'
Dies ist nicht genau das, wonach Sie fragen, aber Sie können einige Shell-Aliase in Ihrem
~/.bashrc
für die Git-Befehle einrichten, die Sie am häufigsten verwenden:Beachten Sie auch, dass Sie Aliase in Git selbst erstellen können:
Auf diese Weise können Sie
git ci
anstelle vongit commit
usw. eingeben.quelle
git hash-object
odergit interpret-trailers
? Ich biete dies nur als Alternative an, weil meines Wissens das, wonach die Frage gestellt wird, nicht wirklich existiert.ci
dasscommit
ich auch einen Shell-Aliasg
für verwendegit
, reduziert dies den größten Teil der Eingabe und lässt mich in meiner bevorzugten Shell bleiben.Ich bin ein großer Fan von der Verwendung von Aliasen in ~ / .bash_profile für meinen GitBash. Wenn Sie sich für diesen Ansatz entscheiden, sind hier einige meiner Favoriten:
quelle
commit
oderpush
da ich ein paar zusätzliche Sekunden (während des Tippens) möchte, um sicherzugehen, dass ich nichts zerstöreVerwenden Sie Ihren Editor.
Geben Sie den Befehl wie
commit
in Ihrem bevorzugten Editor wie vs code ein und arbeiten Sie effizienter mit git:Oder geben Sie ein
git
, um alle Befehle abzurufen:quelle
Ein Freund von mir hat ein kleines Bash-Skript erstellt, das dies erreicht. Es heißt Replify .
quelle
eval
in der ursprünglichen Skriptquelle ist nicht die beste Idee. Sagen Sie Ihrem Freund,while IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
stattdessen zu verwendenHier ist ein anderer Weg. Es ist auch nicht ganz das, was gefragt wurde, aber ich benutze es seit einiger Zeit und es ist ziemlich schön. Fügen Sie Ihrer Zeile die folgende Zeile hinzu
~/.bashrc
:Wenn Sie nun an einer leeren Bash-Eingabeaufforderung die Tabulatortaste drücken, wird "git" eingegeben.
quelle
~/zshrc
~/tcshrc
Ich weiß, dass dies eine sehr späte Antwort ist, aber diese Frage hat mich wirklich beeindruckt, weil ich mich schon seit einiger Zeit
mitdieser Art von Wiederholung beschäftige.Ich bin mir nicht sicher, aber ich möchte ehrlich gesagt nicht (ich wiederhole NICHT ) Aliase für jeden
git
Befehl erstellen. Stattdessen habe ich ein Python-Skript namens NoGit geschrieben , um dieses Problem zu lösen:NoGit ist ein einfaches Python-Skript, um die unnötige Wiederholung des Schlüsselworts "git" zu verhindern.
Dokumentation:
%undo
Befehl entfernt den letzten Befehl vom Stapel%run
Befehl führt die Befehle im Stapel aus und löscht den Stapel%exit
Befehl schließt die CLI, ohne etwas zu tunctr+c
ist dasselbe wie Laufen%run; %exit
git.history
im selben Ordner wie das Skript aufgerufen wirdgit
am Anfang des Befehls verwenden und das Skript wird es nicht duplizieren ( EG:git init
wird nichtgit git init
)Beispielbefehle:
init
add .
stage .
commit -m "inital commit"
%run; %exit
Zusätzliche Informationen (für Linux-Benutzer):
Wenn Sie möchten, können Sie die
.py
Erweiterung entfernen und in eine ausführbare Datei konvertieren, indem Sie:Dann anstatt das Skript wie folgt aufzurufen:
Sie würden dies stattdessen ausführen:
Zusätzliche Informationen (für faule Leute):
Wenn Sie faul sind und kein a eingeben möchten, können
./
Sie dieses Skript in Ihren/bin/
Ordner verschieben und einen Alias dafür erstellen.Wenn Sie wirklich sehr, sehr faul sind, verwenden Sie die folgenden Befehle:
Wenn Sie wirklich, wirklich, wirklich faul sind, kopieren Sie den folgenden Einzeiler und fügen Sie ihn ein:
Wenn Ihre Faulheit ein Niveau erreicht hat, das der Menschheit bisher unbekannt war, finden Sie hier eine kompaktere Version desselben Einzeilers:
Viel Glück.
quelle
Ein weiterer Ansatz, der mit allen Befehlen funktioniert: Verwenden Sie Strg + R (Reverse-i-Search).
Mit der Reverse-i-Suche können Sie Ihren Befehlsverlauf durchsuchen. Wiederholen Sie Strg + R, nachdem Sie Ihre Suchzeichenfolge gedrückt haben, um die Suche mit derselben Zeichenfolge weiter hinten zu wiederholen.
Sie müssen einen Befehl nur einmal eingeben, dann können Sie diesen Befehl aus beliebigen Teilzeichenfolgen des Befehls abrufen. In den meisten Fällen können Sie ganze sehr lange Befehle und ihre verschiedenen Varianten mit nur zwei bis drei gut platzierten Suchbuchstaben abrufen. Es sind keine Vorkonfigurationen erforderlich, außer dass Sie Ihre Shell normal verwenden. Sie passt sich an die Verwendung der Shell an. Geben Sie einfach den vollständigen Befehl einmal ein, und die Befehle werden automatisch zu Ihrem Befehlsverlauf hinzugefügt.
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
Darüber hinaus funktioniert Strg-R nicht nur mit Bash, sondern mit vielen Programmen, die eine Readline-Bibliothek verwenden (und es gibt viele davon), wie Python-Shell, IPython, MySQL-Shell, Psql-Shell, IRB (Ruby) usw.
quelle
In Ihrem Beispiel vergleichen Sie es mit einer MySQL-Eingabeaufforderung. Die Funktionsweise besteht darin, dass ein MySQL-Prozess gestartet wird und Sie diesem Prozess Ihre Befehle geben. Warum schreiben Sie nicht etwas Ähnliches in der Sprache Ihrer Wahl? Hier ist ein einfaches Beispiel in C ++:
Bitte beachten Sie, dass ich das gerade aus dem Speicher geschrieben habe und es nicht mit einem Compiler überprüft habe. Es kann triviale Syntaxfehler geben.
quelle
Für grundlegende Dinge können Sie tun:
Beenden Sie mit Strg + c
quelle
;
nach tun , führt zubash: syntax error near unexpected token
; "` Zweitens ist dereval
Teil zu Schwachstellen anfällig ist. Überlegen Sie zum Beispiel, was passiert, wenn ichstatus;cat /etc/passwd
in diese kleine Shell tippe. Harmloses Beispiel, aber Sie bekommen die Idee, was passieren kann. Sie können das vereinfachen.while IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";done
Dies ist natürlich nicht kugelsicher, aber 1 - es ist einfacher und 2 - vermeidet die Ausführung von Nicht-Git-Befehlen (aufgrund von doppelten Anführungszeichen). Nicht ideal, nur ein bisschen bessersystem
oder\!
zumindest am Anfang. Wo die Annahme sein könnte, dass diese "Repl"git
nur Befehle ausführt , erlaubt sie tatsächlich mehr als das.eval
ist nicht die beste Idee, um Befehle auszuführen, insbesondere wenn benutzergesteuerte Eingaben erforderlich sind.do
. Vielen Dank! re: security: Dies ist offensichtlich nicht als separate Anwendung gedacht. Geben.bash_profile
Sie einfach Ihre ein, wenn Sie nicht gerne Git eingeben. Ich mache mir keine Sorgen darüber, dass es "unsicher" ist. Wenn Sie Dinge in Ihre Bash einfügen, die Sie nicht verstehen (einschließlich dieses Oneliner-Skripts), werden Sie eine schlechte Zeit haben. Ich mag das, weil es einfach, leicht zu schreiben und leicht zu lesen und leicht zu verbessern ist.Als ich Windows 7 mit Conemu verwendet habe, habe ich meinem Startskript für die Entwicklungsumgebung Folgendes hinzugefügt:
Damit könnte ich einfach den
g
Befehl verwenden, anstatt zu tippengit
. Zuletzt habe ich es mit Windows 10 und Conemu versucht, es hat nicht funktioniert, es gibt einen Fehler, denke ich, aber es ist einen Versuch wert.quelle
Verwenden Sie einen Klammer-Editor, es ist einfach, Ihre Code- und Git-Befehle zu verwenden, und es hat auch viele Funktionen.
In der oberen rechten Ecke wird das zweite Fernglas-Symbol zum Installieren von Erweiterungen verwendet.
Suchen Sie nach einer Erweiterung
brackets git
wie dem obigen Bild und installieren Sie sie.Wieder in der oberen rechten Ecke wird das vierte Symbol angezeigt. Klicken Sie also einfach auf und sehen Sie die Änderungen wie im obigen Bild.
Wenn Sie Klammern installieren möchten, verwenden Sie die folgenden Befehle:
Weitere Informationen finden Sie unter: So installieren Sie den Brackets Code Editor in Ubuntu und Linux Mint unter Ubuntupit .
quelle