2012-02-12 12 views

Odpowiedz

9

Jest mało znana funkcja git o nazwie "Reuse Recorded Resolutions" lub rerere.

Możesz włączyć to globalnie, uruchamiając git config --global rerere.enabled 1.

Jeśli opcja ponownego zapisu jest włączona, git automatycznie zapisze konflikty, a później wykorzysta te rozdzielczości, jeśli napotka takie same konflikty. Wynika to z faktu, że użytkownik nie musi ponownie rozwiązywać wcześniejszych konfliktów.

Ta funkcja jest dokładniej wyjaśniona w pozycji a post on git-scm.com. Aby uzyskać więcej szczegółów, spójrz na help document for git rerere.

+5

Niestety to ci pomoże, jeśli włączono ją po pierwszym połączeniu - teraz jest już za późno. W części źródłowej źródła Gita znajduje się [skrypt o nazwie rerere-train] (https://github.com/gitster/git/blob/master/contrib/rerere-train.sh), który przechodzi przez istniejącą historię i powoduje ponowne pojawienie się poznaj rozwiązania konfliktów z istniejących połączeń - zakładając, że to działa, które pomogłyby Ci w tym przypadku. – Cascabel

1

Uwaga: Ponieważ skrypt contrib/rerere-train.sh ma ponownie pociąg rerere (można zobaczyć manual retraining here)

Aby upewnić rerere zapomni całą swoją aktualną rozdzielczość rebase, teraz oficjalną opcję z Git 2.14.x /2.15 (Q3 2017) dla contrib/rerere-train: flaga --overwrite.

Zobacz commit ad53bf7 (26 lipca 2017) przez Raman Gupta (rocketraman).
(połączone przez Junio C Hamano -- gitster -- w commit aec68c3 11 sie 2017)

contrib/rerere-train: ewentualnie zastąpić istniejące rozdzielczości

zapewnić możliwość aby zastąpić istniejące rozdzielczości przy użyciu --overwrite flagę użytkownika.

Można to wykorzystać, na przykład, jeśli użytkownik wie, że ma już wpis w swojej nowej pamięci podręcznej dla konfliktu, ale chce go upuścić i przekwalifikować się w oparciu o zatwierdzenie scalenia przekazane do ponownego utworzenia. skrypt pociągu.