2008-12-09 5 views
5

Ich habe ein lokales Git-Repository, das ein Remote-SVN-Repository über git svn verfolgt. Ich habe einige Änderungen im lokalen git-Repository vorgenommen und festgeschrieben, aber jetzt möchte ich einen Zweig erstellen, der SVN HEAD widerspiegelt, um einige Änderungen am Code in SVN vorzunehmen, da ich nicht propagieren möchte die Änderungen in meinem Git-Master zu SVN noch nicht. Wie kann ich das tun?Wie stelle ich eine git-svn-Verzweigung auf SVN HEAD zurück?

Sofortige Nachverfolgung: Ich muss Änderungen an SVN HEAD vornehmen und festschreiben, dann füge ich sie wieder in meinen Git-Master ein. Wie gehe ich vor? Tue ich git merge die 'Svn-Edits' Zweig in Master, oder mache ich eine git svn rebase?

+0

Ernsthaft? Das kannst du mit git und svn machen !? Wild!! – Kieveli

+1

Ja, es gibt ein kleines Programm namens git-svn (siehe man git-svn für weitere Informationen), das git und svn miteinander verbindet (svn wird zum Remote-Repository für das lokale git-Repository). – Loki

Antwort

5

Ich nehme an, dass die Branche, an der Sie arbeiten, diejenige für trunk ist (ich werde es old-trunk nennen). Erstellen Sie einfach von dort eine Niederlassung von dort

git checkout -b real-trunk remotes/trunk 

Nun sind Ihre Änderungen an real-trunk und verpflichten machen. Danach refixieren Sie einfach Ihren alten Zweig auf den neuen Zweig.

git svn dcommit 
git checkout old-trunk 
git rebase real-trunk 

Ihre früheren Änderungen basieren nun auf den neueren Änderungen, die Sie gerade vorgenommen haben.