2016-12-07 2 views
1

Ich habe folgende Branchen, in denen A der aktuell aktive Zweig ist:git Abkürzung für Fütterungsmaterial und verschmelzen

*A C 
|/
B 

Oft mag ich C auf A rebase und dann C in A verschmelzen. Bisher habe ich es mit einzelnen Befehlen so mache:

git checkout C 
git rebase A 
git checkout A 
git merge C 

# and optional to clean up no longer needed branches 
git branch -d C 
git push origin :C 

Was für eine einfache Art und Weise sei dies in einem Befehl zu tun? Gibt es einen "Git-Weg" oder muss ich mich auf ein Shell-Skript verlassen?

+0

Ich denke, Sie müssen Verwenden Sie Shell-Skript nur etwas wie dieses http://stackoverflow.com/questions/18860696/syntax-for-git-aliases-with-multiple-commands oder dieses http://stackoverflow.com/questions/7534184/git-alias-multiple-commands-and-parameters Wenn jedoch die Rebase zu Konflikten führt, liegt möglicherweise ein Problem beim Zusammenführen vor. – Deep

Antwort

1

Für Routinen wie diese ich in der Regel Setup-Aliase:

git config --global alias.rebmerge '!git checkout C && git rebase A && ...' 

oder wenn Sie wollen Parameter akzeptieren:

git config --global alias.rebmerge '!f() { git rebase checkout $1 && git rebase $2 && ... }; f' 

und dann rufen Sie einfach

git rebmerge A B C 
+0

Können Sie das ''! F() {...} 'ein bisschen mehr erklären? – 23tux

+0

Ich kenne einige Leute, die "Hub" verwenden, um ähnliche Verknüpfungen zu haben, aber ich habe es noch nie versucht https://github.com/github/hub – pedrorijo91

+2

@gusto ''! F() {...}' hier' ! ' bedeutet Shell-Skript, '! f() {..}' ist eine Funktion, die 'A',' B' & 'C' als Parameterzugriff von' $ 1', '$ 2' und' $ 3' verwendet –

Verwandte Themen