2011-06-22 14 views
25

Mam 10 plików, które mają konflikty podczas łączenia oddziałów. Rozwiązałem wszystkie konflikty 10 plików (trwało to długo). Niestety przed zatwierdzeniem okazało się, że jeden plik został nieprawidłowo scalony i trzeba go ponownie uruchomić dla tego pliku. :(Jak ponownie scalić plik w git?

w Git, Jak zaznaczyć plik, który został połączyła niescalone, innymi słowy, jak ponownie scalić że jeden plik?

+0

możliwym duplikatu [Ponów łączyć się tylko z jednego pliku] (http: // stackoverflow. com/questions/6857082/redo-merge-of-just-a-single-file) –

Odpowiedz

29
git checkout -m <filename> 

To usunie je z indeksu, a powrócić do „skonfliktowanego” pliku, który ma wszystkie znaczniki wymaganych do wtedy zrobić seryjnej

na stronie utworu man git help.

-m, --merge 
    When switching branches, if you have local modifications to one or more files that are different between the current branch and the branch to which you are switching, the command refuses to switch 
    branches in order to preserve your modifications in context. However, with this option, a three-way merge between the current branch, your working tree contents, and the new branch is done, and you 
    will be on the new branch. 

    When a merge conflict happens, the index entries for conflicting paths are left unmerged, and you need to resolve the conflicts and mark the resolved paths with git add (or git rm if the merge should 
    result in deletion of the path). 

    When checking out paths from the index, this option lets you recreate the conflicted merge in the specified paths. 

(ostatnie zdanie najważniejszy) .

Oto blogu, który opisuje, dlaczego został dodany i jak nie jest możliwe ze starszymi wersjami git: http://gitster.livejournal.com/43665.html

+0

dzięki, człowiek działa :) – Nyambaa

+0

+1 Sweet! Nie wiedziałem o tej ostatniej rzeczy z -m. Rzeczywiście bardzo przydatne! – ralphtheninja

+0

@Magnus Skog: Używałem go raz lub dwa razy, więc musiałem przeglądać strony man, aby znaleźć je ponownie. –