Ich möchte wissen, ob es eine Möglichkeit gibt, standardmäßig ein Flag für den Befehl git zu setzen. Insbesondere möchte ich das --abbrev-commit
Flag so setzen, dass git log
ich es beim Ausführen ausführen möchte git log --abbrev-commit
.
Im Gegensatz zu der Frage " Gibt es eine Möglichkeit, ein Flag standardmäßig für einen Git-Befehl zu setzen? " Gibt es anscheinend kein Konfigurationsflag zum Hinzufügen von --abbrev-commit zum Git-Protokoll. Darüber hinaus heißt es im Git-Handbuch, dass ich keinen Alias erstellen kann: "Um Verwirrung und Probleme bei der Skriptverwendung zu vermeiden, werden Aliase, die vorhandene Git-Befehle verbergen, ignoriert."
Meine dritte Option besteht darin, einen neuen Alias wie glog=log --abbrev-commit
in meiner .gitconfig-Datei zu erfinden . Aber ich möchte lieber kein eigenes DSL mit neuen Befehlen erfinden.
Gibt es eine andere Möglichkeit, dies zu erreichen, sodass das abbrev-commit
Flag standardmäßig gesetzt ist?
Antworten:
Seit der Git-Version 1.7.6 hat die Git-Konfiguration eine log.abbrevCommit-Option erhalten, die auf true gesetzt werden kann. Daher lautet die Antwort "Upgrade auf mindestens 1.7.6" (derzeit Stand 1.7.11.4) und folgende Verwendung:
quelle
git config --help
oder verwendengit help config
, um die Dokumentation zu erhalten, die zu Ihrer Installation passt .Sie können ein benutzerdefiniertes Format verwenden,
git log
um--abbrev-commit
standardmäßig zu imitieren :quelle
log.abbrevCommit
Einstellung wirkte sich auf andere ausführlichere Formate aus, die mir nicht gefallen haben. Verwenden Sie%C(auto)%h %s
diese Option auch, um das normale Online-Format mit automatischer Farbgebung zu erhalten. Ich habe verwendet,git config --global format.pretty "%C(auto)%h %d %s"
weil ich online als meine "Standardeinstellung" dekorieren wollteIn git gibt es keinen generischen Mechanismus zum Festlegen von Standardargumenten für Befehle.
Sie können Git-Aliase verwenden , um einen neuen Befehl mit den erforderlichen Argumenten zu definieren:
Dann kannst du rennen
git lg
.Einige Befehle verfügen auch über Konfigurationseinstellungen, um ihr Verhalten zu ändern.
quelle
git lg
nurgit log
VonC hat in seiner Antwort bereits auf einen Shell Wrapper hingewiesen; Hier ist meine Bash-Implementierung eines solchen Wrappers. Wenn Sie dies zB in Ihre einfügen
.bashrc
, unterstützt Ihre interaktive Shell das Überschreiben von in Git integrierten Befehlen sowie von Aliasnamen in Großbuchstaben.Sie können dann überschreiben,
git log
indem Sie ein Skript mit dem Namengit-log
irgendwo in Ihren PFAD einfügen:quelle
Ich habe ein ähnliches Problem (viele der Standardoptionen für Git-Befehle sind dumm). Hier ist mein Ansatz. Erstellen Sie ein Skript mit dem Namen "grit" (oder was auch immer) auf Ihrem Pfad wie folgt:
Sehr einfach zu lesen und zu warten, falls Sie es mit Bash-Nicht-Experten teilen müssen.
quelle
git
durch Hinzufügen einer ersten Zeile benannt, um den tatsächlichen Befehlspfad zu erhalten :thegit=`/usr/bin/which git`
. Und ich habe eine Option hinzugefügt, um die Überschreibungen mit einem x vor dem Befehl abzubrechen, wiegit x log ...
:if [ "$cmd" = "x" ]; then; $thegit $@
.Ich mag das
git log --oneline
Format. Verwenden Sie, um es als Standard zu erhaltengit config --global format.pretty oneline
Bildnachweis: https://willi.am/blog/2015/02/19/customize-your-git-log-format/
quelle
Jedes von uns verwendete Dienstprogramm (svn, maven, git, ...) ist immer in einer .bat-Datei (unter Windows oder .sh unter Unix) gekapselt, um unseren Entwicklern ein Verzeichnis anzubieten, das sie ihrem Pfad hinzufügen können.
Wenn git in einem Wrapper-Skript gekapselt ist, ist ... alles möglich.
Dies bleibt jedoch eine Lösung, die mit dem Setup des Benutzers verknüpft ist und nicht mit Git selbst oder dem Git-Repo.
quelle