2012-04-15 11 views
8

Lubię popełniać dość często (a nawet losowo), gdy pracuję nad jakimś kodem, ponieważ jeśli gdzieś spieprzę, zawsze mogę cofnąć moje zmiany.git: jak "skonsolidować" lokalne zobowiązanie

Jednak, gdy zdecyduję się przesłać wszystkie zmiany do głównego repozytorium, nie lubię, gdy ludzie widzą wszystkie przypadkowe zatwierdzenia, ponieważ niektóre z nich są dla nich naprawdę bez znaczenia, a to powoduje, że drzewo zmian jest niepotrzebnie długie .

W jaki sposób mogę "skonsolidować" wszystkie moje lokalne zatwierdzenia, zanim popchnę?

+3

Właściwy termin "tępienia" zobowiązuje. To powinno ci pomóc znaleźć odpowiedź, której szukasz. –

+2

Nie jestem w 100% pewny, czy to właśnie robisz, ale brzmi to tak, jakbyś rozwijał się na 'master' (lub cokolwiek, co główna gałąź jest dla ciebie). Jeśli tak się dzieje, prawdopodobnie powinieneś używać rozgałęziania zamiast podejścia do ponawiania opisanego poniżej. Zobacz książkę Scotta Chacona: http://progit.org/book/ch3-4.html – msandiford

+0

^^ co powiedział. – oyalhi

Odpowiedz

2

Wykonaj interactive rebase, które pozwoli Ci zmienić kolejność, zmiażdżyć i edytować zatwierdzenia do zawartości twojego serca przed naciśnięciem.

2

git rebase -i

interaktywny edytor zostanie poproszony na zewnątrz.

zmienić wszystkie popełnić chcesz skonsolidować do „squash”

Zamknij edytor

+0

Zauważ, że musisz również podać identyfikator zatwierdzenia ostatniego zatwierdzenia _ przedtem: te, które chcesz zgnieść: 'git rebase -i ' – mklement0