Mam dialog
gałąź i kiedy próbuję połączyć ją z master
gałęzią. Istnieją 2 konflikty. Nie wiem jak to rozwiązać CONFLICT (delete/modify)
. Czy możesz mi powiedzieć, co mam robić?
$ git checkout master
$ git merge dialog
CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree.
Auto-merging src/com/DialogAdapter.java
CONFLICT (content): Merge conflict in src/DialogAdapter.java
Automatic merge failed; fix conflicts and then commit the result.
Otworzyłem src/DialogAdapter.java
, naprawiłem konflikt i zrobiłem git add src/DialogAdapter.java
. Co jeszcze muszę zrobić?
git
git-merge
merge-conflict-resolution
BuZZ-dEE
źródło
źródło
Odpowiedzi:
Komunikat o konflikcie:
oznacza, że
res/layout/dialog_item.xml
został usunięty w gałęzi „okna dialogowego”, którą scalasz, ale został zmodyfikowany w HEAD (w gałęzi, do której się scalasz).Musisz więc zdecydować, czy
git rm res/layout/dialog_item.xml
”lub
git add res/layout/dialog_item.xml
”Następnie zakończysz scalanie za pomocą „
git commit
”.Zauważ, że git ostrzeże cię, że tworzysz zatwierdzenie scalania w (rzadkim) przypadku, gdy jest to coś, czego nie chcesz. Prawdopodobnie pozostaje z dni, w których wspomniany przypadek był rzadszy.
źródło
git rm …
), ale rozumiem…: needs merge
irm '…'
mam trudności z interpretacją. A jeśli spróbuję zatwierdzić, stackoverflow.com/questions/19985906/… pojawia się ponownie.git ls-files --stage
i / lubgit status --porcelain
i / lubgit diff-files <something>
uzyskać listę zmienionych plików i uruchomić skrypt, aby je usunąć lub zaakceptować swoją lub ich wersję.git status
lubgit diff --cc
. Jest teżgit log --merge
Zwykle po prostu uruchamiam
git mergetool
i wyświetli się monit, czy chcę zachować zmodyfikowany plik, czy go usunąć. Jest to najszybszy sposób IMHO, ponieważ jest to jedno polecenie zamiast kilku na plik.Jeśli masz kilka usuniętych plików w określonym podkatalogu i chcesz, aby wszystkie zostały rozwiązane przez usunięcie plików, możesz to zrobić:
d
Służy do wyboru usunięcie każdego pliku. Możesz także użyćm
do zachowania zmodyfikowanego pliku. Zaczerpnięte z monitu wyświetlanego po uruchomieniumergetool
:źródło
Jeśli używasz Git Gui w systemie Windows,
źródło