2012-06-01 6 views
6

In Git arbeite ich manchmal an lang laufenden Zweigen. Ich mag es, von Zeit zu Zeit auf den Meister zu verweisen, um das Zusammenführen zu erleichtern, wenn ich bereit bin.Kann ich einen Git Remote-Zweig in einem Befehl zerstören und neu erstellen?

Nach dem Rebasieren kann ich einen zuvor gedrückten Zweig nicht zu einer Fernbedienung schieben, weil der Verlauf meines Zweiges nicht mehr mit dem Verlauf dieses Zweigs übereinstimmt. Also muss ich es zuerst löschen.

Dies ist mein aktueller Workflow:

git checkout my_branch 
git rebase master 
git push origin :my_branch # Delete remote version of the branch 
git push origin my_branch # Push up my new version of history on this branch 

Gibt es einen einzigen, atomar-Befehl, der die letzten beiden Befehle ersetzen könnte?

+0

Ich wusste nicht, dass Sie einen rebased Zweig nicht drücken können. Wer weiß warum ?! Rebase scheint eine relativ häufige Operation zu sein, warum sollte es nicht "einfach funktionieren"? – Shahbaz

+2

Zitat http://help.github.com/rebase _ "Es ist eine schlechte Übung, Commits, die Sie bereits an einen Remote-Repo übertragen haben, erneut zu reassoziieren. Dies kann den Zorn der git Götter hervorrufen ... Sie wurden gewarnt . "_ – Stefan

+0

@Stefan, naja, gute alte Git-Merge ist es für mich dann. – Shahbaz

Antwort

10

Wenn Sie die Remote-Zweigstelle umschreiben dürfen, können Sie git push --force my_remote my_branch verwenden.

+2

Das löst die gestellte Frage, aber Stefan ist auf dem richtigen Weg. Rebasing-Commits, die Sie bereits an eine Fernbedienung gesendet haben, sind im Allgemeinen keine gute Übung. – Emily

+0

Nun, wenn Sie der einzige sind, der an diesem Zweig arbeitet, ist es wahrscheinlich in Ordnung. – Stefan

+0

@Stefan - das ist genau mein Fall; es ist meine exklusive Filiale. Ich würde es nicht anders machen. –

Verwandte Themen