Jestem nowy w Git i używam wtyczki EGit eclipse do zatwierdzania.
Zmodyfikowałem kilka plików i ukryłem zmiany, a następnie zrobiłem git pull
w linii poleceń, która wyciągnęła wszystkie najnowsze zatwierdzenia. Potem zrobiłem Apply stashed changes
z EGit. Teraz zastosował moje zmiany, a zmiany, które wyciągnął z ostatniego zatwierdzenia przechowywanych plików, wyszły. Nie jestem pewien, dlaczego nie zapytał mnie o konflikty scalania i nadpisał moje zmiany i utracił poprzednie zmiany zatwierdzeń.
Jak uzyskać te zmiany?
git stash list
aby ją pokazać.Odpowiedzi:
Po wprowadzeniu zmian w kopii roboczej z wiersza poleceń wykonaj:
Spowoduje to ukrycie zmian i wyczyszczenie raportu o stanie
Spowoduje to pobranie zmian z gałęzi upstream. Upewnij się, że w raporcie jest napisane „Przewiń do przodu”. Jeśli tak nie jest, prawdopodobnie wykonujesz niezamierzone scalanie
Spowoduje to zastosowanie ukrytych zmian z powrotem do kopii roboczej i usunięcie zmian z magazynu, chyba że wystąpią konflikty. W przypadku konfliktu pozostaną w skrytce, więc w razie potrzeby możesz zacząć od nowa.
jeśli chcesz zobaczyć, co masz w skrytce
źródło
git stash && git pull && git stash pop
git rebase origin/master
przyniesie taki sam wynik jakgit stash; git pull; git stash pop
?git pull --rebase --autostash
. Do Twojej wiadomości--autostash
zawsze działa? Na przykład, jeśli mam nieśledzone pliki, które są już częściowo w Git?