Dotyczy Eclipse Luna + Eclipse Git 3.6.1
JA,
- sklonowane repozytorium git
- dokonał pewnych zmian w kodzie źródłowym
- etapowe zmiany z widoku przejściowego Git
- na koniec zatwierdź i naciśnij!
I napotkałem ten problem z EGit i oto jak go naprawiłem.
Tak, ktoś zatwierdził zmiany, zanim ja je zatwierdzę. Więc zmiany są odrzucane. Po tym błędzie zmiany zostaną faktycznie zatwierdzone do lokalnego repozytorium. Nie chciałem tylko Pull
zmian, ponieważ chciałem zachować, linear history
jak wskazano w - W jakich przypadkach „git pull” może być szkodliwe?
Więc wykonałem następujące kroki
- z perspektywy repozytorium Git kliknij prawym przyciskiem myszy odpowiedni
projekt Git
- select
Fetch from Upstream
- pobiera zdalne aktualizacje (odniesienia i obiekty), ale żadne aktualizacje nie są dokonywane lokalnie. aby uzyskać więcej informacji refer. Jaka jest różnica między „git pull” a „git fetch”?
- select
Rebase...
- to otwiera wyskakujące okienko, kliknij, aby Preserve merges during rebase
zobaczyć, dlaczego
Co dokładnie robi polecenie „rebase --preserve-scales” git (i dlaczego?)
- Kliknij
Rebase button
- jeśli jest / są
conflict(s)
, przejdź do kroku 6, w przeciwnym razie krok 11
- pojawi się
Rebase Result
wyskakujące okienko, po prostu kliknijOK
file comparator
otworzy się, musisz zmodyfikować left side file
.
- po poprawnym scalaniu zmian przejdź do
Git Staging
widoku
stage the changes
. to znaczyadd to index
- w tym samym widoku kliknij
Rebase
-> Continue
. powtarzaj od 7 do 10, aż wszystkie konflikty zostaną rozwiązane.
- w
History
widoku wybierz wiersz zatwierdzenia i wybierzPush Commit
- zaznacz
Rebase Commits of local.......
pole wyboru i kliknij dalej. zobacz dlaczego - Git: rebase na gałąź rozwojową z wyższego poziomu
- Kliknij
Finish
Uwaga: jeśli masz wiele zatwierdzeń lokalnego repozytorium, musisz zgnieść je w jednym zatwierdzeniu, aby uniknąć wielokrotnych połączeń.