2010-03-25 11 views

Odpowiedz

50

This post ma ładne wyjaśnienie:

Odpowiedź leży w podścielanie. Rebasing to technika upowszechniana przez gita, w której przepisujesz swoje jeszcze nie pchane łaty, tak aby były stosowane przeciwko aktualnej, zdalnej końcówce, a nie przeciwko czubkowi repozytorium, z którego ostatnio korzystałeś. Korzyścią jest to, że twoja historia scalania pokazuje użyteczne scalenia - połączenia między głównymi gałęziami - zamiast po prostu każdego scalenia, jakie zrobiłeś z repozytorium wyższego szczebla.

Normalne ciągnięcie, scalanie, sekwencja wypychania utworzy liczbę zatwierdzeń, które nie są zbyt przydatne pod względem historii repozytorium. Rebasing pomaga wyeliminować te.

+1

Wyczyść odpowiedź, dziękuję Vincent. Z mojej perspektywy jednak myślę, że gdyby to wszystko było możliwe, nie byłoby warte dodania nowej funkcji i nowej koncepcji dla użytkowników. –

+0

nie musisz używać przebijania, zawsze możesz rozgałęziać się i scalać. iirc rebase nie jest domyślnie włączony w mecurial –

+3

@jk Jeśli domyślnie nie jest włączony, czy dobrym pomysłem jest poproszenie wszystkich programistów o włączenie? Co się stanie, jeśli ktoś tego nie zrobi? – Vincent

4

Jeśli wykonasz sekwencję push-merge-push i uzyskasz "scalenie", możesz zawsze "wycofać" zatwierdzenie "scalania". W ten sposób masz łatwy sposób na "cofnięcie pchnięcia". Nie wiem, czy istnieje równoważny łatwy sposób, gdy używam rebase.

+0

Polecenie rebase pominie operację scalania, nie będzie więc konieczności wycofywania się ze złego scalenia. – Vincent

+1

Nie rozumiem twojego komentarza .. Chodzi mi o to, że używając scalania, łatwo jest "wycofać" złe pushowanie. Jak to zrobić z rebase? – Guy

+1

Podczas korzystania z polecenia rebase nie ma operacji scalania. Więc nie można mieć "złego scalenia". Jeśli wykonasz push po przebiciu, a to nie jest dobre, zawsze możesz się wycofać. – Vincent

Powiązane problemy