Czytałem różne rzeczy o funkcji rerere git i rozważam jej włączenie. Ale nie widziałem nikogo, kto wspominał o możliwych problemach, które mogą się pojawić podczas korzystania z niego. Muszę założyć, że jest wada lub prawdopodobnie byłby domyślnie włączony. Czy jest więc jakaś wada włączania rerere? Jakie potencjalne problemy może to spowodować, a które inaczej nie wystąpiłyby?
git
merge
git-rerere
Ryan C. Thompson
źródło
źródło
Resolved 'index.html' using previous resolution.
Odpowiedzi:
Jeśli wykonasz scalanie niepoprawnie, a następnie odrzuć je, a następnie wykonaj „to samo” scalenie ponownie, znowu będzie nieprawidłowe. Możesz jednak zapomnieć o nagranej rozdzielczości. Z dokumentacji :
Uważaj, aby używać go na określonych ścieżkach; nie chcesz wszędzie wysadzać wszystkich nagranych rozdzielczości. (
forget
brak argumentów został wycofany, aby uchronić Cię przed robieniem tego, chyba że wpiszesz,git rerere forget .
aby wyraźnie o to poprosić).Ale jeśli nie pomyślisz o tym, możesz łatwo umieścić to nieprawidłowe połączenie w swojej historii.
źródło
rerere
nadal pozostawia pliki z konfliktami oznaczonymi jako nie scalone, więc przed zatwierdzeniem trzeba je ręcznie dodać (miejmy nadzieję, po ich sprawdzeniu / przetestowaniu). Zawsze możesz użyć tej funkcji,git checkout -m <path>
aby sprawdzić oryginalną wersję będącą w konflikcie i ponowić rozwiązanie, jeśli zajdzie taka potrzeba.Jak wspomina JC Hamano w swoim artykule „ Fun with rerere ”
Więc jeśli aktywujesz się
rerere
na zbyt szerokich treściach, możesz skończyć z zaskakującą lub mylącą rozdzielczością scalania z powodu ostatniego punktu.źródło
Mam włączoną globalną rerere. Naprawdę nie zauważyłem żadnych problemów i zwykle wydaje się, że ułatwia mi to życie.
źródło
Wybrałem zmianę (w gitk), która zawierała tylko plik binarny. Cherrypick nie powiódł się z powodu konfliktu (co jest naturalne) i rozwiązałem ten konflikt, zachowując najlepszy wybór. Zaskoczyło mnie później, że w innej gałęzi z rebased moje biblioteki dll nie zachowują się - tylko po to, aby odkryć, że nie zostały przeniesione do rebase jako (spekuluję) automatyczne rozwiązywanie konfliktów. Jest to więc jedyny przypadek, w którym spotkałem (po ponownym włączeniu) wpadanie w sprzeczne z intuicją (choć jestem pewien, że jestem całkowicie spójny) zachowanie.
źródło
git rerere forget path/to/compiled/bin.dll