Ponów scalenie tylko jednego pliku

112

Jestem w trakcie dużej fuzji i git mergetoolrozwiązywałem wszystkie konflikty, ale jeszcze się nie zobowiązałem, ponieważ najpierw chciałem się upewnić, że scalenie jest prawidłowe.

Okazuje się, że popełniłem błąd podczas rozwiązywania konfliktów w jednym pliku i chciałbym ponownie rozwiązać konflikt z git mergetoolna tym pliku. Ponieważ jest to duże scalanie, chciałbym uniknąć ponownego łączenia wszystkich innych plików, ponieważ rozumiem, że musiałbym to zrobić git merge --abort.

Wiem, że mógłbym po prostu edytować plik ręcznie, ale byłoby to dość żmudne i znacznie łatwiej byłoby po prostu powtórzyć git mergetooloperację. czy to możliwe?

hammar
źródło
1
Możliwy duplikat Jak ponownie scalić plik w git?
wesoły

Odpowiedzi:

181

Wygląda na to, że szukałem po prostu w złym miejscu. Rozwiązanie okazało się dość proste.

git checkout -m <file>

Powoduje to przywrócenie pliku do stanu konfliktu. Mogę wtedy uruchomić git mergetoolponownie scalenie.

hammar
źródło
2
To zadziałało na mnie. Indeks zakończył się w stanie scalonym, ale łącznik nie sądził, że są jakieś zaległe połączenia. Właśnie dokonałem scalenia za pomocą vi, ale i tak było to dziwne.
Chris Cleeland,
1
Dziękuję Ci! to jest dokładnie to, czego potrzeba. Nawiasem mówiąc, ręczne łączenie z vi jest zawsze przyjemne iw pełni satysfakcjonujące. przesunięcie w lewo lub przesunięcie w prawo nigdy nie dało mi pewności, że scalanie przebiega zgodnie z oczekiwaniami
asgs
1
W odpowiedzi na to zduplikowane pytanie jest kilka przydatnych dodatkowych szczegółów (z tą samą odpowiedzią) .
Joshua Goldberg
-4

Zawsze możesz edytować pliki ręcznie.

Jeśli używasz git merge --no-commit, to po prostu będziesz miał przygotowane zatwierdzenie (po automatycznym i półautomatycznym scaleniu).

Nadal możesz bezpiecznie edytować pliki i zatwierdzać je tylko wtedy, gdy są całkowicie spełnione.

Šimon Tóth
źródło