2016-08-24 6 views
2

Sagen wir, ich möchte einen neuen Git-Befehl, git new, das macht einen neuen Zweig, der mit Ursprung/Master auf dem neuesten Stand ist.Windows benutzerdefinierte Git-Befehle

Gibt es eine Möglichkeit, dieses Skript zu machen und es in allen Repositories unter Windows von Powershell verfügbar?

edit: Zur Klärung möchte ich ein Git-Skript nicht eine Powershell-Funktion. Der einzige Grund, warum ich Powershell erwähnt habe, ist, dass ich keine git bash verwende.

+1

Sie könnten einen Alias ​​verwenden, der eine Batchdatei ausführt. [Dieser Beitrag] (http: // stacko verflow.com/questions/24914589/how-to-create-permanent-powershell-aliases) wird Ihnen viel helfen. – byxor

+0

Das hilft überhaupt nicht. Ich möchte es mit 'git new' wie gesagt ausführen und du kannst keinen solchen Alias ​​erstellen. Ich möchte auch keine Hacky-Powershell-Funktion machen, ich möchte ein Git-Skript unter Windows machen. – RusinaRange

+0

Okay, es war nur ein Vorschlag. – byxor

Antwort

6

eine Batchdatei erstellen, die die folgenden Befehle enthält:

git branch %1 origin/master 
git checkout %1 

speichern, lassen Sie uns sagen, wie C:\Scripts\new-branch.cmd. (Ich habe nie mit PowerShell gearbeitet, ich kenne seine Regeln nicht. Allerdings sollte es auch mit der alten Windows-Eingabeaufforderung funktionieren).

C:\Scripts\new-branch.cmd test1 

Es ausgeben sollte etwas in dieser Richtung:

Branch test1 set up to track remote branch master from origin by rebasing. 
Switched to branch 'test1' 
Your branch is up-to-date with 'origin/master'. 

Wenn Sie nicht benötigen Sie den neuen Zweig zu verfolgen, die Remotezweig

Testen Sie die Batchdatei funktioniert, indem Sie wie erwartet dann fügen Sie einfach --no-track zum git branch Befehl hinzu.

Wenn alles gut geht dann laufen:

git config --global alias.new '!C:/Scripts/new-branch.cmd' 

Dies macht die Git alias new Verfügung, um Ihre Windows-Profil in allen Repositories. Wenn Sie es nur in einem Repository benötigen, entfernen Sie --global und führen Sie den Befehl aus, wenn sich das aktuelle Verzeichnis im Repository befindet, wo Sie es benötigen.

Verwenden Sie es als:

git new test2 
+0

Es ist nicht genau das, was ich im Sinn hatte, aber es tut definitiv was ich will. Vielen Dank! – RusinaRange

+0

BTW ist es% 1 nicht $ 1 – RusinaRange

+0

Sie haben Recht. Ich habe es geschrieben und auf Linux getestet :-) Die Antwort wurde jetzt aktualisiert. – axiac

1

können Sie Sie verwenden ein git alias die git checkout verwendet:

git config --globla alias.new 'checkout origin/master -b'

Dies würde dann als git new new_branch verwendet werden.

(die git checkout origin/master -b new_branch

Siehe git docs for checkout equivolent wird. Ich habe versucht, den Befehl und es funktioniert, aber wenn ich mir die docs sah, habe ich nicht eine Syntax, die genau aufeinander abgestimmt meine Form finden. (Am nächsten liegt git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>])

. Hinweis: @axiac ich die !git verwendet haben, weil es nicht weh tut, und ich kann mehrere Befehle zu tun benötigt haben, um das Problem zu lösen, und haben es nicht entfernen, wenn ich fertig war

Verwandte Themen