Zrobiłem git stash pop
i skończyłem z konfliktami scalania. Usunąłem pliki z systemu plików i zrobiłem to git checkout
tak, jak pokazano poniżej, ale wydaje się, że pliki nadal nie są scalone. Następnie spróbowałem zastąpić pliki i git checkout
powtórzyć ten sam wynik. Próbowałem wymusić to -f
flagą. Każda pomoc będzie mile widziana!
chirag-patels-macbook-pro:haloror patelc75$ git status
app/views/layouts/_choose_patient.html.erb: needs merge
app/views/layouts/_links.html.erb: needs merge
# On branch prod-temp
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: db/schema.rb
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# unmerged: app/views/layouts/_choose_patient.html.erb
# unmerged: app/views/layouts/_links.html.erb
chirag-patels-macbook-pro:haloror patelc75$ git checkout app/views/layouts/_choose_patient.html.erb
error: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
chirag-patels-macbook-pro:haloror patelc75$ git checkout -f app/views/layouts/_choose_patient.html.erb
warning: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
git
git-stash
git-checkout
Chirag Patel
źródło
źródło
git stash apply/pop
powinno być łatwiejsze z Git 2,5 (Q2 2015), ponieważ drzewo pracuje teraz musi być czyste: zobacz moją odpowiedź poniżejOdpowiedzi:
Zobacz man git merge ( JAK ROZWIĄZYWAĆ KONFLIKTY ):
I w ramach PRAWDZIWEGO POŁĄCZENIA (aby zobaczyć, do czego odnoszą się 2. i 3.):
Tak więc: użyj,
git reset --hard
jeśli chcesz usunąć zmiany ukryte w działającym drzewie, lubgit reset
jeśli chcesz po prostu wyczyścić indeks i pozostawić konflikty w działającym drzewie do scalenia ręcznie.Pod man git stash ( OPCJE, pop ) możesz przeczytać dodatkowo:
źródło
Przydarzyło mi się coś podobnego. Nie chciałem jeszcze przygotowywać plików, więc dodałem je
git add
i dopiero wtedy zrobiłemgit reset
. Zasadniczo to właśnie dodało, a następnie wyreżyserowało moje zmiany, ale wyczyściło nieuporządkowane ścieżki.źródło
reset --hard
ponieważ nie zastępuje plików (z wyjątkiem plików z problemami z scalaniem). Dzięki!add
przenosi zawartości z drzewa roboczego do indeksu? Nie sądzę, że rozumiem, dlaczego twoja odpowiedź działa z opisu.git add
wystawia je na scenę, alegit reset
co robię zaraz potem, je wystawia. Zasadniczo usuwa niezamieszane ścieżki i przywraca mnie do mojego normalnego drzewa roboczego, udając git.git add
jeśli masz zamiargit reset
. Wgit reset
rzeczywistości „cofa się”git add
.git reset
(--mixed
<- domyślnie) skutecznie nie dotyka katalogu roboczego, więc dokładnie to, co było w twoim katalogu roboczym, scalaj konflikty i wszystkie, pozostawia się w spokoju. Indeks (i technicznie główka oddziału) jest jednak resetowany (bez odwołania, do którego resetuje się z powrotemHEAD
, co prawdopodobnie oznacza brak zmiany dla głowy oddziału i skutecznie cofa wszelkie zmianygit add
dokonane w indeksie, a także kasuje stan nie połączonych ścieżek) .git reset
igit stash drop
działa dobrze. Robi to, cogit stash pop
zrobiłby bez konfliktów. Wydaje się, żegit add
nie jest to potrzebne; chociaż może się przydać, masz wiele plików z konfliktami. Po rozwiązaniu każdego z nich można je dodawać igit status
śledzić.Jeśli, podobnie jak ja, zwykle chcesz zastąpić zawartość katalogu roboczego zawartością ukrytych plików, a nadal pojawia się konflikt, to chcesz rozwiązać konflikt przy użyciu
git checkout --theirs -- .
katalogu głównego.Następnie możesz
git reset
przenieść wszystkie zmiany z indeksu do katalogu roboczego, ponieważ najwyraźniej w przypadku konfliktu zmiany w plikach nie będących w konflikcie pozostają w indeksie.Możesz także uruchomić
git stash drop [<stash name>]
później, aby pozbyć się skrytki, ponieważgit stash pop
nie usuwa jej w przypadku konfliktu.źródło
Zauważ, że
Git 2.5 (II kwartał 2015 r.)przyszły Git może próbować uniemożliwić ten scenariusz.Zobacz commit ed178ef, autor: Jeff King (
peff
), 22 kwietnia 2015.(Scalony przez Junio C Hamano -
gitster
- w commit 05c3967 , 19 maja 2015)Uwaga: Zostało to cofnięte. Patrz poniżej .
Problem
Innymi słowy:
Rozwiązanie
Zobacz zatwierdzenie 1937610 (15 czerwca 2015 r.) I zatwierdzenie ed178ef (22 kwietnia 2015 r.) Przez Jeff King (
peff
) .(Połączone przez Junio C Hamano -
gitster
- in commit bfb539b , 24 czerwca 2015)źródło