Z tego, co wiem, domyślnie komenda cherry-pick
przyjmuje zatwierdzenie i umieszcza je na wierzchu bieżącego odgałęzienia. Czy jest możliwe cherry-pick
zatwierdzenie w Git i umieszczenie go poniżej bieżącego zatwierdzenia?Git cherry wybierz commit i umieść go poniżej
Odpowiedz
Zawsze możesz wykonać rebase
po wybraniu cherry. Wyglądałoby to tak:
git cherry-pick <hash>
git rebase HEAD~2 -i
Zamień zlecenia commit w oknie rebase.
Druga opcja
W przypadku, gdy chcesz rozwiązać konflikty tylko raz, jak to zaznaczono. Możesz wziąć długą drogę. Usuń bieżące zatwierdzenie, wybierz inny, a następnie wybierz najnowsze zatwierdzenie.
git log --oneline -1
<write_down_this_hash> description
git reset --hard HEAD~1
git cherry-pick <hash to cherry pick>
git cherry-pick <write_down_this_hash>
Oto inne podejście. Załóżmy, że Twoja historia wygląda następująco:
A - B - D master, HEAD
\
C other
i chcesz cherry pick popełnić C
przedHEAD
tak, że otrzymany historia staje:
A - B - C' - D' master, HEAD
\
C other
Następnie można zrobić:
git checkout HEAD^
przenieśćHEAD
, aby zatwierdzićB
git cherry-pick other master
zastosować zobowiązujeC
iD
na szczycieB
git branch -f master HEAD
abymaster
wskazują na ten sam popełnić jakHEAD
git checkout master
przenieśćHEAD
domaster
W ten sposób sam bym to zrobił. (Chociaż nazwałbym końcowe zatwierdzenie 'D'', ponieważ będzie to kopia 'D' zamiast oryginalnego' D'.) – torek
Prawda, wynikowe 'D' będzie miało inny SHA-1 niż oryginał, ale ponieważ na drugim wykresie jest tylko jedno "D", nie jest konieczne dodawanie adnotacji do liczby pierwszej. Jednak widzę twój punkt, jeśli porównać oba wykresy ze sobą. –
- 1. git cherry-pick branchless commit na zdalnym
- 2. cherry-wybierz commit i zachowaj oryginalny kod SHA
- 3. Git cherry wybierz odpowiednik w Perforce?
- 4. Git cherry pick i datamodel integralności
- 5. "Fatal: cherry-pick failed" z Git
- 6. git svn cherry pick zignorował ostrzeżenie
- 7. Jak wybrać cherry ze skrytki w git?
- 8. git stwardnienie cherry-pick zobowiązuje
- 9. git - cherry-pick - HOWTO/WHYTO
- 10. CALayer - Umieść podwarstwę poniżej storyboardów UIButtons?
- 11. git cherry-pick -x: odnośnik w szczegółach zamiast w podsumowaniu
- 12. git cherry pick - zakres zatwierdzeń i wykluczenie niektórych pomiędzy
- 13. Git submodule commit hooks
- 14. bootstrap-wybierz element dodany i wybierz go
- 15. git commit directory
- 16. git rebase jeden commit
- 17. git: usuń drugi commit
- 18. git commit problemów
- 19. Git Commit Parents 'Order
- 20. git commit - format?
- 21. git find fat commit
- 22. Git commit date
- 23. Git post commit: skip --amend i rebase
- 24. Przeczytaj ostatnie zatwierdzenie git i commit number
- 25. Całkowicie przesuń poprzedni commit git
- 26. git cherry-pick i scalaj, ignorując zmiany EOL
- 27. git cherry confusion - nie działa zgodnie z opisem w dokumencie
- 28. Git big commit best practices
- 29. git commit komentarz za plik
- 30. otrzymywanie znacznika commit w git
problemem jest to, że po wiśni wybierz, wchodzę w fazę "rozwiązywania konfliktu". Chciałbym rozwiązać konflikty tylko jeden raz, gdy wybrane przeze mnie zatwierdzenie nie jest na szczycie (ale we właściwym miejscu, tuż poniżej szczytu). – nyarlathotep108
Podałem drugą (dłuższą) opcję w odpowiedzi. –
@ nyarlathotep108: Możesz rozważyć spróbowanie 'git rerere'. – Hasturkun