Powiązane: Czy każdy git commit powinien pozostawić projekt w stanie roboczym?
Załóżmy, że lokalnie wykonuję następujące zatwierdzenia:
Zmodyfikuj schemat bazy danych, psując aplikację.
Zaktualizuj aplikację, aby była zgodna ze schematem bazy danych.
Tak długo, jak pcham oba zatwierdzenia, master
pozostaje w stanie roboczym. Jednak historyczna wersja jest zepsuta.
Wiem, że mogę użyć git rebase -i
do zmiażdżenia zatwierdzeń. Jednak wynikowe zatwierdzenie będzie duże i mniej opisowe. Jeśli muszę przeszukać historię zatwierdzeń, aby dowiedzieć się, dlaczego coś zmieniłem, wolę znaleźć oryginalne zatwierdzenie pokazujące, co zrobiłem i dlaczego.
Moje pytania to:
Czy ktoś napotkał trudności z powodu złamanych historycznych zobowiązań w kapitale?
Jeśli tak, to czy istnieje prosty sposób na uniknięcie takich trudności bez odrzucania poszczególnych komunikatów i zmian zatwierdzeń?