2016-07-13 7 views
2

Ich würde einen Alias ​​in einem anderen Alias ​​in Cmder verwenden.Cmder: Wie verwende ich einen Alias ​​in einem anderen Alias?

Ich habe einen schönen Alias ​​(die erste) zu einem großen Befehl, und ich würde es in einem anderen (zweiten) verwenden:

Die Aliase sind in der Cmder aliases Datei und Ich bin auf Windows 7 x64.

Das Thema wurde bereits gestellt in this question, mit keine Antworten wie jetzt.

Wenn Sie mir antworten, bitte auch zu diesem Kerl beantworten :)

gefunden this, scheint etwas zu haben, zu helfen, aber ich glaube nicht, wie.

Antwort

1

Benj: Ich vermute, dass Sie bereits eine Antwort gefunden haben, aber ich sehe, dass niemand diese Frage beantwortet hat, also werde ich.

Wenn ich einen alternativen Vorschlag zur Alias-Datei machen kann. Es sieht so aus, als ob du das für Git lösen willst.

Der beste Weg, den ich in Windows gefunden habe, ist die ~/.bashrc Datei zu bearbeiten. Auf den meisten Windows-Rechnern wäre es unter C:\Users\<USERNAME>\.bashrc.

Sie eine Funktion erstellen können, wie:

function MergeLocDistFn { 
    local co_branch=$1 
    local merge_branch=$2 

    echo ">> Debug Command: git checkout ${co_branch}" 
    git checkout ${co_branch} 

    echo ">> Debug Command: git merge --ff-only --verbose origin/${merge_branch} || git rebase --preserve-merges --verbose origin/${merge_branch}" 
    git merge --ff-only --verbose origin/${merge_branch} || git rebase --preserve-merges --verbose origin/${merge_branch} 
} 

Dann können Sie Aliase in der ~/.bashrc Datei erstellen, wie folgt aus:

alias mergelocdist=MergeLocDistFn 
alias mm='MergeLocDistFn master master' 

Der Vorteil dieses Ansatzes besteht darin, dass es ermöglicht, Sie werden mit der Funktion wirklich ausgefeilt und wie ich hier zeige, debuggen Sie es auch mit Echo-Statements.

Siehe das beigefügte Bild der Beispielausgabe.

Beachten Sie auch, wenn Sie dies lieber für eine PowerShell-Eingabeaufforderung tun, ist es noch einfacher, das PowerShell-Profil zu ändern, lassen Sie es mich wissen, und ich werde Ihnen zeigen, wie.

Ein weiterer Hinweis, Sie können auch eine Funktion in der. Bashrc für den aktuellen Zweig erstellen. Hier ist ein Beispiel Funktion:

function current_branch() { 
    ref=$(git symbolic-ref HEAD 2> /dev/null) || \ 
    ref=$(git rev-parse --short HEAD 2> /dev/null) || return 
    echo ${ref#refs/heads/} 
} 

Hier ist ein Beispiel für die Verwendung der current_branch Funktion:

alias gpush='git push -u origin $(current_branch)' 

Ich hoffe, dass seine hilft, lassen Sie mich wissen, wenn Sie irgendwelche Erklärungen müssen zu diesem Thema.

+0

Vielen Dank für Ihre Hilfe! Ich habe zu diesem Zeitpunkt keine Lösung gefunden, also nochmals vielen Dank! Ich würde dich küssen, wenn ich könnte. – Benj

+0

Schöne Aufnahme für eine erste Antwort. Ich habe einen Link zu Ihrer Antwort in den Kommentaren der Frage, die ich in meinem verlinkt habe, eingefügt. – Benj

+0

Gut zu hören, dass es hilfreich ist. Wenn Sie weiter erforschen wollen, habe ich auch über andere Bashrc-Techniken unter http://erpenbeck.io/2016/10/27/bashrc/ gebloggt.Wenn Ihr Team zum Beispiel Git-Upstream-Fernbedienungen, Verzweigungen zum Entwickeln/Verwalten usw. verwendet, gibt es eine praktische Methode namens "cloneIt", die alles in einem Befehl konfiguriert. Passen Sie es an die Git-Konventionen Ihres Teams an. –

Verwandte Themen