Ich sah einen Screencast, in den jemand gekommen war
git st
git ci
arbeiten. Wenn ich es tue, bekomme ich eine Fehlermeldung, ob ich etwas anderes gemeint habe.
Als Git-Neuling muss ich wissen, was Sie tun müssen, um dies zu erreichen?
Ich empfehle Ihnen dringend git config --global, die Aliase ~/.gitconfiganstelle .git/configIhres aktuellen Repositorys zu verwenden.
Cascabel
27
Ich ziehe Einstellungen stauf status -s(kurze Status)
hasen
20
Das ist wirklich großartig. Ich habe danach gesucht. Nur ein Kopf hoch, wenn Sie einen Befehl mit Leerzeichen haben, sollten Sie 'wiegit config --global alias.sr 'svn rebase'
Amir Raminfar
1
@HellishHeat Diese Aliase werden von git für git erstellt. Wenn Sie Aliase für ein anderes Befehlszeilensystem wünschen, müssen Sie nachschlagen, wie Sie dieses System ausführen. (Sie scheinen ein Unix-ähnliches System zu verwenden, und ich weiß zufällig, dass das Erstellen von Aliasen auf Unices recht einfach ist. Die Syntax ist jedoch anders. Versuchen Sie eine Google-Suche.)
Michael Dorst
17
Nur ein weiterer Hinweis: Wenn Sie Git in der Windows-Befehlszeile verwenden, müssen Sie doppelte Anführungszeichen "anstelle von einfachen Anführungszeichen verwenden, wenn Sie Befehle mit Leerzeichen hinzufügen, z. B.git config --global alias.ci "commit -v"
ABVincita
179
Wie andere bereits gesagt haben, können Sie Git-Aliase in Ihrer globalen .gitconfigDatei entweder durch Bearbeiten ~/.gitconfigoder mithilfe des git config --global alias.<alias> <git-command>Befehls hinzufügen
Unten finden Sie eine Kopie des Alias-Abschnitts meiner ~/.gitconfigDatei:
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
Wenn Sie bash verwenden, würde ich empfehlen, die Bash-Vervollständigung einzurichten, indem Sie sie git-completion.bashin Ihr Home-Verzeichnis kopieren und von Ihrem beziehen ~/.bashrc. (Ich glaube, ich habe dies aus dem Pro Git- Online-Buch erfahren .) Unter Mac OS X habe ich dies mit den folgenden Befehlen erreicht:
# Copy git-completion.bash to home directory
cp usr/local/git/contrib/completion/git-completion.bash ~/
# Add the following lines to ~/.bashrc
if [ -x /usr/local/git/bin/git ]; then
source ~/.git-completion.bash
fi
Hinweis: Die Bash-Vervollständigung funktioniert nicht nur für die Standard-Git-Befehle, sondern auch für Ihre Git-Aliase.
Um die Tastenanschläge wirklich zu reduzieren, habe ich meiner ~/.bash_aliasesDatei Folgendes hinzugefügt, das aus folgenden Quellen stammt ~/.bashrc:
alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcot='git checkout -t'
alias gcotb='git checkout --track -b'
alias glog='git log'
alias glogp='git log --pretty=format:"%h %s" --graph'
noob frage: was bedeutet es, aus einer ~/.bashrcdatei "bezogen zu werden" ?
Ahnbizcad
1
~/.bashrc: um die Tastenanschläge wirklich zu reduzieren. Genau das, wonach gesucht wurde.
Parasrish
Diese Antwort ist ein perfektes Beispiel dafür, warum ich die Verwendung einer .gitconfig in meiner Antwort vorschlage! stackoverflow.com/a/59896430/117471
Bruno Bronosky
65
Ich denke, die nützlichste gitconfig ist wie folgt: Wir verwenden immer die 20% -Funktion in git. Sie können das "g ll" ausprobieren. Es ist erstaunlich, die Details:
[user]
name = my name
email = [email protected]
[core]
editor = vi
[alias]
aa = add --all
bv = branch -vv
ba = branch -ra
bd = branch -d
ca = commit --amend
cb = checkout -b
cm = commit -a --amend -C HEAD
ci = commit -a -v
co = checkout
di = diff
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
mm = merge --no-ff
st = status --short --branch
tg = tag -a
pu = push --tags
un = reset --hard HEAD
uh = reset --hard HEAD^
[color]
diff = auto
status = auto
branch = auto
[branch]
autosetuprebase = always
Sie können auch Folgendes tun: git config --global alias.bco 'checkout -b'. Dann könnten Sie tun: git bco new-branch. :)
Russell
4
Ich mag git cob. erinnert mich an den Sommer, wie bei Maiskolben. Eigentlich ein tolles Wort, über das wir nicht genug nachdenken ... Cob das ist
Мати Тернер
4
Falls dies das erste Mal ist, dass jemand anders als ich einen Git-Alias-Befehl gesehen hat, der mit beginnt !, beachten Sie, dass Since version 1.5.0, Git supports aliases executing non-git commands, by prefixing the value with "!"( ref )
$ git co # use git co instead of git checkout
$ git ci # use git ci instead of git commit
$ git st # use git st instead of git status
$ git br # use git br instead of git branch
Warum nicht "einfach" git push -f origin HEADden aktuellen Zweig zu seinem entfernten Gegenstück verschieben? Auch eine Abkürzung, um mit Gewalt zu schieben? Wenn Sie häufig genug Druck ausüben müssen, um von einer Verknüpfung zu profitieren, stimmt etwas an anderer Stelle in Ihrem Setup oder Workflow nicht?
RomainValeri
Bash hat den Alias erstellt (durch !gitden letzten git-Befehl ersetzt), aber das manuelle Bearbeiten der Konfigurationsdatei hat den Trick getan.
H. de Jonge
5
Sie können sowohl git- als auch non-git-Befehle aliasen. Es sieht so aus, als ob dies in Version 1.5 hinzugefügt wurde. Ein Ausschnitt aus der git config --helpSeite zu Version 2.5.4 auf meinem Mac zeigt:
Wenn der Alias-Erweiterung ein Ausrufezeichen vorangestellt ist, wird sie als Shell-Befehl behandelt.
In Ihrer globalen .gitconfigDatei könnten Sie beispielsweise Folgendes haben:
Bei mir ( ich verwende einen Mac mit Terminal ) funktionierte es nur, wenn ich .bash_profile hinzugefügt und eine weitere Registerkarte geöffnet habe, um die Änderung zu laden:
alias gst="git status"
alias gd="git diff"
alias gl="git log"
alias gco="git commit"
alias gck="git checkout"
alias gl="git pull"
alias gpom="git pull origin master"
alias gp="git push"
alias gb="git branch"
Um die Aliase noch kürzer als die in anderen Antworten erwähnte Standard-Git-Konfigurationsmethode zu machen, habe ich ein npm-Paket mingit ( npm install -g mingit) erstellt, sodass die meisten Befehle aus 2 Zeichen anstelle von 2 Wörtern bestehen. Hier sind die Beispiele:
g a . // git add .
g b other-branch // git branch other-branch
g c "made some changes" // git commit -m "made some changes"
g co master // git checkout master
g d // git diff
g f // git fetch
g i // git init
g m hotfix // git merge hotfix
g pll // git pull
g psh // git push
g s // git status
und andere Befehle wären ähnlich kurz. Dies hält auch Bash-Abschlüsse. Das Paket fügt Ihren Punktedateien eine Bash-Funktion hinzu und funktioniert unter OSX, Linux und Windows. Im Gegensatz zu den anderen Aliasen werden auch Aliase git-> gsowie der zweite Parameter verwendet.
Vielen Dank, dass Sie das Github-Projekt erstellt haben.
Biniam
2
Wenn Sie eine Alternative zu dieser ~/.gitconfigOption suchen und sich ein wenig mehr damit beschäftigen möchten , können Sie auch vollständig benutzerdefinierte Git-Befehle schreiben, indem Sie sie in ein globales Knotenpaket einschließen.
In Ihrer package.json definieren Sie den Root-Befehl (Beispiel :) gtund filtern dann die spezifischen Befehle, um die richtigen Git-Befehle auszuführen. Zum Beispiel git checkout my-branchkönnte sein gt co mybranch.
Fügen Sie mehrere Aliasdateien in Ihre Datei ein .gitconfig
Ich schlage vor, ein .gitconfigInclude für Ihre Aliase zu verwenden. Sobald Sie anfangen, Aliase zu erstellen, werden Sie wahrscheinlich viele davon haben. Sie werden wahrscheinlich etwas sein, das Sie mit anderen teilen möchten. Wenn Sie sie in eine dedizierte Datei einfügen, können Sie sie problemlos freigeben. Ihr Team kann sogar ein Git-Repo verwenden, um gemeinsam genutzte Aliase zu speichern. Und natürlich einige Aliase, die Sie nicht freigeben möchten. Bewahren Sie sie daher in einer privaten Aliasdatei auf.
Eine andere Möglichkeit für Windows wäre, ein Verzeichnis mit .bat-Dateien zu füllen, in denen sich Ihre Verknüpfungen befinden. Der Name der Datei ist die zu verwendende Verknüpfung. Fügen Sie einfach das Verzeichnis zu Ihrer Umgebungsvariablen PATH hinzu, und Sie haben alle Verknüpfungen im cmd-Fenster zur Verfügung.
Zum Beispiel (gc.bat):
git commit -m %1
Anschließend können Sie den folgenden Befehl in der Konsole ausführen:
gc "changed stuff"
Der Grund, warum ich dies als Antwort hinzufüge, ist, dass Sie bei der Verwendung nicht git ...nur Befehle verwenden.
Sie können dasselbe tun, indem Sie Ihrem .profile, .bashrc oder .bash_profile je nach System Shell-Aliase hinzufügen. Dann befinden sich alle Ihre Aliase in einer einzigen Datei. Dies ist auch der Standardmechanismus, um Ihre Aufgabe zu erfüllen. Der Abschnitt "Befehls-Aliase" zeigt einige häufig definierte Shell-Aliase, die für Git-Befehle verwendet werden. Es gibt bessere Ressourcen und Tutorials dazu. Dies ist zufällig ein Link, den ich geöffnet hatte.
Antworten:
Grundsätzlich müssen Sie nur Zeilen hinzufügen
~/.gitconfig
Oder Sie können den Befehl git config alias verwenden:
Verwenden Sie unter Unix einfache Anführungszeichen, wenn der Alias ein Leerzeichen enthält:
Verwenden Sie unter Windows doppelte Anführungszeichen, wenn der Alias ein Leerzeichen oder ein Befehlszeilenargument enthält:
Der Alias-Befehl akzeptiert sogar Funktionen als Parameter. Schauen Sie sich Aliase an .
quelle
git config --global
, die Aliase~/.gitconfig
anstelle.git/config
Ihres aktuellen Repositorys zu verwenden.st
aufstatus -s
(kurze Status)'
wiegit config --global alias.sr 'svn rebase'
"
anstelle von einfachen Anführungszeichen verwenden, wenn Sie Befehle mit Leerzeichen hinzufügen, z. B.git config --global alias.ci "commit -v"
Wie andere bereits gesagt haben, können Sie Git-Aliase in Ihrer globalen
.gitconfig
Datei entweder durch Bearbeiten~/.gitconfig
oder mithilfe desgit config --global alias.<alias> <git-command>
Befehls hinzufügenUnten finden Sie eine Kopie des Alias-Abschnitts meiner
~/.gitconfig
Datei:Wenn Sie bash verwenden, würde ich empfehlen, die Bash-Vervollständigung einzurichten, indem Sie sie
git-completion.bash
in Ihr Home-Verzeichnis kopieren und von Ihrem beziehen~/.bashrc
. (Ich glaube, ich habe dies aus dem Pro Git- Online-Buch erfahren .) Unter Mac OS X habe ich dies mit den folgenden Befehlen erreicht:Hinweis: Die Bash-Vervollständigung funktioniert nicht nur für die Standard-Git-Befehle, sondern auch für Ihre Git-Aliase.
Um die Tastenanschläge wirklich zu reduzieren, habe ich meiner
~/.bash_aliases
Datei Folgendes hinzugefügt, das aus folgenden Quellen stammt~/.bashrc
:quelle
~/.bashrc
datei "bezogen zu werden" ?~/.bashrc
: um die Tastenanschläge wirklich zu reduzieren. Genau das, wonach gesucht wurde.Ich denke, die nützlichste gitconfig ist wie folgt: Wir verwenden immer die 20% -Funktion in git. Sie können das "g ll" ausprobieren. Es ist erstaunlich, die Details:
quelle
Du brauchst den
git config alias
Befehl. Führen Sie Folgendes in einem Git-Repository aus:Für globalen Alias:
quelle
Das hat bei mir funktioniert:
auf:
quelle
git cob
. erinnert mich an den Sommer, wie bei Maiskolben. Eigentlich ein tolles Wort, über das wir nicht genug nachdenken ... Cob das ist!
, beachten Sie, dassSince version 1.5.0, Git supports aliases executing non-git commands, by prefixing the value with "!"
( ref )Dadurch wird ein Alias erstellt
st
fürstatus
:git config --add alias.st status
quelle
git st
wenn Sie verwenden könnengit s
, entfernen Sie dass
: PIm Folgenden finden Sie die 4-Git-Verknüpfungen oder Aliase, mit denen Sie Zeit sparen können.
Öffnen Sie die Befehlszeile, geben Sie die folgenden 4 Befehle ein und verwenden Sie die Verknüpfungen danach.
Jetzt teste sie!
quelle
Für diejenigen, die Shell-Befehle in einem Git-Alias ausführen möchten , zum Beispiel:
In meinem Terminal schieben zwingen den aktuellen Zweig zu meinem Ursprung Repo:
Bei dem die
Befehl gibt den aktuellen Zweig zurück.
Dies ist also eine Verknüpfung zum manuellen Eingeben des Filialnamens:
quelle
git push -f origin HEAD
den aktuellen Zweig zu seinem entfernten Gegenstück verschieben? Auch eine Abkürzung, um mit Gewalt zu schieben? Wenn Sie häufig genug Druck ausüben müssen, um von einer Verknüpfung zu profitieren, stimmt etwas an anderer Stelle in Ihrem Setup oder Workflow nicht?!git
den letzten git-Befehl ersetzt), aber das manuelle Bearbeiten der Konfigurationsdatei hat den Trick getan.Sie können sowohl git- als auch non-git-Befehle aliasen. Es sieht so aus, als ob dies in Version 1.5 hinzugefügt wurde. Ein Ausschnitt aus der
git config --help
Seite zu Version 2.5.4 auf meinem Mac zeigt:In Ihrer globalen
.gitconfig
Datei könnten Sie beispielsweise Folgendes haben:Und dann führen Sie sie aus:
quelle
Fügen Sie die folgenden Zeilen zu Ihrer ~ / .gitconfig in Ihrem Home-Verzeichnis hinzu
Sobald dies erledigt ist, können Sie dies
git a
anstelle vongit add
beispielsweise tun . Gleiches gilt für andere Befehle unter der Alias-Überschrift.quelle
quelle
Ich habe den Alias
dog
zum Anzeigen des Protokolldiagramms erstellt:Und verwenden Sie es wie folgt:
quelle
Sie können Befehle auch verketten, wenn Sie das '!' Operator, um eine Shell zu erzeugen:
Dadurch werden alle Dateien hinzugefügt und Sie erhalten einen Statusbericht mit
$ git aa
.Fügen Sie diesen Alias hinzu, um Ihre Aliase auf praktische Weise zu überprüfen:
Dann
$ git alias
gibt Ihnen ein kurzer Überblick über Ihre aktuellen Aliase und deren Funktionsweise.quelle
Sie können benutzerdefinierte Git-Aliase mit der Konfiguration von git festlegen. Hier ist die Syntax:
Wenn Sie beispielsweise einen Alias zum Anzeigen einer Liste von Dateien mit Zusammenführungskonflikten benötigen, führen Sie Folgendes aus:
Jetzt können Sie den obigen Befehl nur mit "Konflikten" verwenden:
quelle
Bei mir ( ich verwende einen Mac mit Terminal ) funktionierte es nur, wenn ich .bash_profile hinzugefügt und eine weitere Registerkarte geöffnet habe, um die Änderung zu laden:
quelle
Um die Aliase noch kürzer als die in anderen Antworten erwähnte Standard-Git-Konfigurationsmethode zu machen, habe ich ein npm-Paket mingit (
npm install -g mingit
) erstellt, sodass die meisten Befehle aus 2 Zeichen anstelle von 2 Wörtern bestehen. Hier sind die Beispiele:und andere Befehle wären ähnlich kurz. Dies hält auch Bash-Abschlüsse. Das Paket fügt Ihren Punktedateien eine Bash-Funktion hinzu und funktioniert unter OSX, Linux und Windows. Im Gegensatz zu den anderen Aliasen werden auch Aliase
git
->g
sowie der zweite Parameter verwendet.quelle
Wenn Sie eine Alternative zu dieser
~/.gitconfig
Option suchen und sich ein wenig mehr damit beschäftigen möchten , können Sie auch vollständig benutzerdefinierte Git-Befehle schreiben, indem Sie sie in ein globales Knotenpaket einschließen.In Ihrer package.json definieren Sie den Root-Befehl (Beispiel :)
gt
und filtern dann die spezifischen Befehle, um die richtigen Git-Befehle auszuführen. Zum Beispielgit checkout my-branch
könnte seingt co mybranch
.Das "christian-git" -Paket auf npm verwendet diese Methode: https://github.com/alexmacarthur/christian-git
quelle
Es wird hier Aliase gegeben. Auch hier gibt es gute Antworten, ich habe dies hinzugefügt, weil es sich in Windows und Linux unterscheidet
quelle
PFA-Screenshot meiner .gitconfig-Datei
mit den folgenden Aliasen
quelle
Fügen Sie mehrere Aliasdateien in Ihre Datei ein
.gitconfig
Ich schlage vor, ein
.gitconfig
Include für Ihre Aliase zu verwenden. Sobald Sie anfangen, Aliase zu erstellen, werden Sie wahrscheinlich viele davon haben. Sie werden wahrscheinlich etwas sein, das Sie mit anderen teilen möchten. Wenn Sie sie in eine dedizierte Datei einfügen, können Sie sie problemlos freigeben. Ihr Team kann sogar ein Git-Repo verwenden, um gemeinsam genutzte Aliase zu speichern. Und natürlich einige Aliase, die Sie nicht freigeben möchten. Bewahren Sie sie daher in einer privaten Aliasdatei auf.quelle
Eine andere Möglichkeit für Windows wäre, ein Verzeichnis mit .bat-Dateien zu füllen, in denen sich Ihre Verknüpfungen befinden. Der Name der Datei ist die zu verwendende Verknüpfung. Fügen Sie einfach das Verzeichnis zu Ihrer Umgebungsvariablen PATH hinzu, und Sie haben alle Verknüpfungen im cmd-Fenster zur Verfügung.
Zum Beispiel (gc.bat):
Anschließend können Sie den folgenden Befehl in der Konsole ausführen:
Der Grund, warum ich dies als Antwort hinzufüge, ist, dass Sie bei der Verwendung nicht
git ...
nur Befehle verwenden.quelle