Używamy git rebase i prowadzimy do konfliktów, w których musimy użyć --continue po rozwiązaniu konfliktów łączących. Jednak jestem przyzwyczajony do ręcznego uruchamiania zatwierdzenia po rozwiązaniu konfliktów. Ponieważ nie widzimy dodatkowych zatwierdzeń po zakończeniu całej reorganizacji, w którym momencie zatwierdza się rozwiązania konfliktów?Podczas Git Rebase, w którym momencie podejmowane są rozstrzygnięcia konfliktów przy użyciu --continue
Odpowiedz
Wszelkie konflikty rozstrzygania, które wystąpią podczas rebase, będą należeć do nowego zatwierdzenia tworzonego przez rebase.
więc bezpośrednią odpowiedź na pytanie:
którym momencie rozwiązywania konfliktów uzyskać popełnione?
... jest po --continue
, ale skutecznie po zakończeniu całego polecenia rebase i wskaźnik gałęzi jest zaktualizowany.
Z perspektywy outsidera, gałąź, która została zmieniona, wygląda tak, jakby praca została wykonana natychmiast po rozgałęzieniu i nie wymagała rozwiązywania konfliktów, ponieważ praca została wykonana nad tą zawartością.
to czasem lepiej scalania ponieważ popełnić historia może być łatwiejsze do rozumu o tym, czy nie ma tak wielu (ewentualnie) bez znaczenia scalania-popełnia
Pomaga myśleć o rebase jak tylko pisanie nowego sekwencja zatwierdzeń, ponownie aplikując remisje na początku nowej głowy. Jeśli każde zatwierdzenie może być zastosowane automatycznie, świetnie, spraw, aby tak się stało. Jeśli zatwierdzenie nie może zostać zastosowane automatycznie, oznacza to, że indeks pozostaje w najlepszym stanie, ponieważ może być reprezentowany, z odpowiednio oznaczonymi plikami powodującymi konflikt, po tym, jak powiesz mu, aby kontynuował używanie bazy, postępuj w następujący sposób:
Jeśli git rebase --continue
znajduje niezatwierdzone zmiany w indeksie, zakłada, że zmiany stanowią rozstrzygnięte konflikty i zatwierdza je. Monituje o komunikat zatwierdzenia i używa go dla tego zatwierdzenia, a następnie wznawia ponowne tworzenie pozostałych zatwierdzeń, po tym, który spowodował konflikt.
Jeśli git rebase --continue
nie widzi żadnych elementów niezaakceptowanych, zakłada, że konflikt został ręcznie rozwiązany i zatwierdzony, więc po prostu kontynuuje działanie z pozostałymi zatwierdzeniami w bazie danych.
wszystko ma sens z wyjątkiem tej części: "Wyświetla komunikat zatwierdzenia i używa go dla tego zatwierdzenia". Nie otrzymujemy monitu o komunikat zatwierdzenia. Dzięki za pomoc –