2008-12-09 13 views
5

Mam lokalne repozytorium git, które śledzi zdalne repozytorium SVN przez git svn. Wprowadziłem i wprowadziłem zmiany w lokalnym repozytorium git, ale teraz chciałbym utworzyć gałąź, która odzwierciedla SVN HEAD, aby wprowadzić pewne zmiany w kodzie w SVN, ponieważ nie chcę propagować zmiany w moim mistrzu git do SVN jeszcze. Jak mogę to zrobić?Jak mogę przywrócić gałąź git-svn do SVN HEAD?

Natychmiastowa obserwacja: Będę musiał dokonać zmian w SVN HEAD, a następnie połączyć je z powrotem w mojego mistrza Git. Jak mam to zrobić? Czy I git merge jest gałęzią "svn-edits" w wersji master, czy też mogę zrobić git svn rebase?

+0

Poważnie? Możesz to zrobić za pomocą git i svn !? Dziki!! – Kieveli

+1

Tak, istnieje mały program o nazwie git-svn (patrz man git-svn po więcej informacji), który łączy razem git i svn (svn staje się zdalnym repozytorium dla lokalnego repozytorium git). – Loki

Odpowiedz

5

Zakładam, że oddział, nad którym pracujesz, jest przeznaczony dla trunk (będę go nazywać old-trunk). Wystarczy utworzyć nowy oddział stamtąd

git checkout -b real-trunk remotes/trunk 

teraz wprowadzić zmiany do real-trunk i zobowiązać się stamtąd. Potem po prostu odbierz swoją starą gałąź na nową.

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

Teraz Twoje wcześniejsze zmiany są oparte na nowszych zmianach, które właśnie wprowadziłeś.

Powiązane problemy