802 Stimmen

Wie kann ich Befehle in Git umbenennen?

Ich habe ein Screencast gesehen, in dem jemand

git st
git ci

zum Laufen gebracht hatte. Wenn ich es mache, erhalte ich einen Fehler, der mich fragt, ob ich etwas anderes gemeint habe.
Als Git-Neuling muss ich wissen, was zu tun ist, um dies zu erreichen?

3 Stimmen

Sie können es auch hier sehen git-scm.com/book/de/v2/Git-Basics-Git-Aliases

0 Stimmen

Auch weitere Fragen zur fortgeschrittenen Nutzung von Git-Alias finden Sie hier: stackoverflow.com/questions/46528736/…

8voto

Nick Moore Punkte 14978

Dies erstellt ein Alias st für status:

git config --add alias.st status

0 Stimmen

Ich brauchte das --Hinzufügen und um doppelte Anführungszeichen zu verwenden, nicht einfache Anführungszeichen.

0 Stimmen

Warum git st verwenden, wenn Sie git s verwenden können, um dieses s loszuwerden :P

0 Stimmen

Warum überhaupt Git verwenden? alias s="git status"

8voto

Gus Punkte 5515

Für diejenigen, die Shell-Befehle in einem Git-Alias ausführen möchten, zum Beispiel:

$ git pof

Wird in meinem Terminal den aktuellen Branch gewaltsam nach meinem Ursprungs-Repo schieben:

[alias]
    pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)

Wo der

$(git branch | grep \\* | cut -d ' ' -f2)

Befehl den aktuellen Branch zurückgibt.

Also handelt es sich hierbei um eine Abkürzung für das manuelle Eingeben des Branch-Namens:

git push origin -f

2 Stimmen

Warum nicht "einfach" git push -f origin HEAD um den aktuellen Branch auf seinen Remote-Gegenpart zu drücken? Auch, ein Shortcut um mit force zu drücken? Wenn du oft genug force drücken musst, um von einem Shortcut zu profitieren, stimmt dann nicht etwas in deinem Setup oder Workflow nicht?

0 Stimmen

Bash hat das Alias erstellt (indem !git durch den letzten git-Befehl ersetzt wurde), aber das manuelle Bearbeiten der Konfigurationsdatei hat den Trick gemacht.

7voto

mkobit Punkte 38986

Sie können sowohl git- als auch nicht-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 in Version 2.5.4 auf meinem Mac zeigt:

Wenn die Alias-Erweiterung mit einem Ausrufezeichen prefixiert ist, wird sie als Shell-Befehl behandelt.

Zum Beispiel könnten Sie in Ihrer globalen .gitconfig-Datei haben:

[alias]
    st = status
    hi = !echo 'hallo'

Und dann führen Sie sie aus:

$ git hi
hallo
$ git st
Auf Branch master

...

6voto

Ankit kaushik Punkte 895

Ich habe alle Alias-Befehle im Verzeichnis des Benutzers in der Datei .profile hinzugefügt (vim ~/.profile).

alias gs='git status'
alias gp='git pull'
alias gph='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -m'
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'
alias gfo='git fetch origin'

Dann habe ich den source-Befehl in der bash- als auch in der zsh-Shell hinzugefügt.

In der bash-Shell (vim ~/.bashrc)

source ~/.profile

In der zsh-Shell (vim ~/.zshrc)

source ~/.profile

0 Stimmen

Du erklärst shell Aliasse, nicht git Aliasse. Das sind unterschiedliche Dinge.

0 Stimmen

^ ja, aber das ist immer noch ziemlich relevant für die Frage. Es würde Sinn machen, den Unterschied mit Vor- und Nachteilen in der Antwort zu klären

5voto

Binh Ho Punkte 2247

Einstellungszeile

$ git config --global alias.co checkout && git config --global alias.br branch && git config --global alias.ci commit && git config --global alias.st status && git config --global alias.unstage 'reset HEAD --' && git config --global alias.last 'log -1 HEAD'

Verwendung:

$ git st
$ git co
$ git br
$ git ci
$ git last
$ git unstage 

Alles wird gesetzt in:

$ cat ~/.gitconfig

[user]
    name = Sample User
    email = sample@gmail.com
[core]
    filemode = false
    compression = 1
    quotepath = off
    ignorecase = false
[color]
    ui = auto
[alias]
    co = checkout
    br = branch
    ci = commit
    st = status
    last = log -1 HEAD
    unstage = reset HEAD --

Hoffentlich schneller.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X