W Git mogę to zrobić:
1. Rozpocznij pracę nad nową funkcją: $ git co -b newfeature-123 # (lokalny oddział rozwoju funkcji) zrobić kilka zmian (M, N, O) mistrz A --- B --- C \ newfeature-123 M --- N --- O 2. Wyciągnij nowe zmiany z głównego urządzenia nadrzędnego: $ git pull (wzorzec zaktualizowany o ff-commits) mistrz A --- B --- C --- D --- E --- F. \ newfeature-123 M --- N --- O 3. Wyłącz system główny, aby moja nowa funkcja można opracować w oparciu o najnowsze zmiany upstream: (od newfeature-123) $ git rebase master mistrz A --- B --- C --- D --- E --- F. \ newfeature-123 M --- N --- O
Chcę wiedzieć, jak zrobić to samo w Mercurial, i szukałem odpowiedzi w Internecie, ale najlepsze, co mogłem znaleźć, to: git rebase - czy mogę to zrobić
Ten link zawiera 2 przykłady:
1. Przyznaję, że to: (zastępując poprawki z przykładu tymi z mojego własnego przykładu)
hg w górę -CF gałąź hg -f nowa funkcja-123 przeszczep hg -a -b nowa cecha-123
nie jest tak źle, z tym wyjątkiem, że pozostawia MNO w fazie wstępnej jako nierozłożoną głowę i tworzy 3 nowe zatwierdzenia M ', N', O ', które reprezentują ich rozgałęzienie poza zaktualizowaną linią główną.
Zasadniczo problem polega na tym, że kończę na tym:
mistrz A --- B --- C --- D --- E --- F. \ \ newfeature-123 \ M '--- N' --- O ' \ newfeature-123 M --- N --- O
nie jest to dobre, ponieważ pozostawia po sobie lokalne, niechciane zatwierdzenia, które należy porzucić.
- Inną opcją z tego samego linku jest
hg qimport -r M: O hg qpop -a hg w górę F oddział hg newfeature-123 hg qpush -a hg qdel -r qbase: qtip
a to daje pożądany wykres:
mistrz A --- B --- C --- D --- E --- F. \ newfeature-123 M --- N --- O
ale te polecenia (wszystkie 6!) wydają się o wiele bardziej skomplikowane niż
$ git rebase master
Chcę wiedzieć, czy jest to jedyny odpowiednik w Hg, czy jest dostępny inny prosty sposób, taki jak Git.
git reflog
i nie znikną one całkowicie, dopóki nie zostaną zebrane śmieci. Jeśli chcesz trzymać je w nazwanej gałęzi, aby nie trzeba było używać dziennika, po prostu zrób togit branch feature-123_original
przed zmianą bazy.