Rebasing kodu w git, mam kilka konfliktów scalania. Rozwiązałem konflikty i dodałem "git add". W tym momencie zapomniałem zrobić "git rebase --continue". Kontynuowałem kodowanie i zrobiłem "zatwierdzenie git" dla zmian. Teraz jestem na "bez oddziału" i nie mogę teraz wykonać "git rebase --continue". Jak to naprawić?Nie pamiętam "git rebase --continue" i wykonałem polecenie "git commit". Jak naprawić?
Odpowiedz
Musiałbym go wypróbować, ale myślę, że to jest to, co chciałbym zrobić:
- otagować ostatni commit (lub po prostu zapisywać swoje SHA1 gdzieś tak aby nie stracić go):
git tag temp
git rebase --abort
- Wykonaj ponowną bazę. Będziesz musiał ponownie rozwiązać scalenie. :(
git rebase --continue
git cherry-pick temp
Problem z tym jest to, że temp
popełnić prawdopodobnie zawiera zarówno rozdzielczość scaleniu i nowy kod. Więc może to być trudne, ale chciałbym spróbować i sprawdzić, czy to działa.
Albo możesz oznaczyć tagiem jak @MatrixFrog, albo możesz zapisać go jako łatę. Następnie przerwij bazę. Sprawdź status, aby upewnić się, że repozytorium znajduje się w stanie, o którym wiesz, że nie było żadnych problemów, a następnie uruchom pobieranie i rebase. – yasouser
Nie rób tego. Zobacz odpowiedź kirikaza poniżej dla znacznie prostszego/czystszego sposobu. Nie zadzieraj z wyborem czereśni i rozwiązywania konfliktów po raz drugi. – tandrewnichols
@Abhilash Proszę przyjąć odpowiedź kirikaza. Ja (podobnie jak tandrewnichols) zrobiłem to i było o wiele łatwiej (a internet wydaje się zgadzać, ponieważ ta odpowiedź ma 4 razy więcej głosów). –
Wystarczy zrobić git reset --soft HEAD^
. to przesuwa wskaźnik HEAD do jego rodzica, ale zachowuje drzewo pracy i dodaje zmianę seryjnej do indeksu. tak więc można kontynuować przebazowania z git rebase --continue
jak poprzednio.
To całkowicie działało, a także po raz pierwszy znalazłem zastosowanie dla --soft. Miło wiedzieć, jak to działa, dzięki! – mmocny
to jest niesamowite! –
To poprawna odpowiedź faceci –
- 1. git rebase jeden commit
- 2. Git post commit: skip --amend i rebase
- 3. Git rebase interactive ostatnie n commit
- 4. `git svn rebase` kontra` git rebase trunk`
- 5. Różnica między git pull --rebase, git rebase i git merge
- 6. Najlepsza praktyka łączenia w NEXT commit w git rebase -i?
- 7. git: usuń drugi commit
- 8. Git: 'rebase' nie jest poleceniem git. Zobacz "git --help"
- 9. Autor zmiany Git rebase?
- 10. git commit zerwana strefa czasowa
- 11. Git interaktywny rebase nie zobowiązuje się odebrać
- 12. Git Pull kontra Git Rebase
- 13. Awaria git rebase
- 14. Git rebase i przenoszenie katalogu w submodule
- 15. git: Jak zautomatyzować interaktywny rebase/zastąp go odpowiednimi poleceniami git.
- 16. Intellij Idea z Git pamiętam autora
- 17. git: użyj "commit --cleanup = whitespace" z "rebase --interactive"
- 18. Czy git może dodawać markery konfliktu, takie jak git rebase?
- 19. Jak wykonać polecenie git svn fetch + rebase w jednej operacji?
- 20. Rebase a merge commit
- 21. Git rebase interactive drop vs usuwanie linii commit
- 22. git - rebase ruiny łączą się
- 23. Cofnij git pull --rebase?
- 24. phpstorm git pull --rebase
- 25. odzyskiwanie z git rebase
- 26. git-svn rebase i dcommit problem
- 27. git rebase po odciągnięciu
- 28. Błąd przy zmianie kolejności zatwierdzeń z git rebase -i
- 29. git submodule init nie ciągnie najnowszego commit
- 30. Git - Merge vs rebase
co oznacza "status git"? – hvgotcodes
# Obecnie nie ma w oddziale. nic do zatwierdzenia (czysty katalog roboczy) – Abhilash