2009-10-06 11 views
5

Po prostu powiedz, że masz gałąź rozwojową z 100 głównie bezsensownymi komunikatami commit/log. Czy można połączyć gałąź dev z masterem/głowicą i mieć tylko jeden komunikat dziennika w gałęzi głównej? tzn. jeden komunikat dziennika w gałęzi head/master może powiedzieć "Dodaje funkcje XYZ"scalanie gałęzi dev do głowy za pomocą tylko jednego komunikatu dziennika

Wygląda na to, że istnieją dwie prawidłowe odpowiedzi. Używanie squasha pozwala ci ukryć wszystkie zatwierdzenia z gałęzi głównej, a użycie interaktywnego rebase pozwala ci ukryć wybrane części historii z gałęzi głównej.

+2

Chociaż jest to możliwe, zastanów się, czy * naprawdę * chcesz stracić całą historię. Historia może się przydać później, np. Gdy próbujesz wyśledzić wprowadzenie błędu. –

+0

Doh! Więc sposób, w jaki go rozumiem, obie odpowiedzi są poprawne technicznie. Squash pozwala zasadniczo ukryć całą historię, a rebase pozwala po prostu zmienić historię. – corydoras

Odpowiedz

9

git-merge --squash a następnie git commit powinien to zrobić.

(More documentation on git-merge)

+0

Myślę, że to jest odpowiedź na moje pytanie, nawet jeśli użycie opcji rebase jest prawdopodobnie lepszą rzeczą do zrobienia. – corydoras

+0

Myślę, że po tym trzeba zrobić 'git commit'? –

+0

Dzięki, to absolutnie słuszne. – Phil

7

Brzmi jak git rebase --interactive jest to, czego potrzebujesz. This section książki Git wyjaśnia:

Możesz również dokonać ponownego podziału bazy interaktywnie. Jest to często używane do ponownego napisania własnych obiektów zatwierdzania przed ich wypchnięciem gdzieś. Jest to łatwy sposób na podzielenie, scalanie lub zmiana kolejności zatwierdzeń przed udostępnianie ich innym. Możesz także użyć go do wyczyszczenia komend, które masz , które zostały pobrane od kogoś, gdy są stosowane lokalnie.

+3

'git rebase -i' to jedna z największych rzeczy, jakich kiedykolwiek się nauczyłem. –

+1

Dzięki! Postaram się nauczyć tego – corydoras

+1

Zgoda. Nie chcesz zgniatać (niszcząc historii), jeśli możesz zamiast tego przepisać historię, aby była zwięzła, ale nadal przydatna. Plus interaktywne rebazy sprawiają, że czujesz się tak potężny. – Cascabel

Powiązane problemy