Przypadkowo wykonałem 10 zatwierdzeń w gałęzi "testowanie", gdy zamierzałem je zatwierdzić w oddziale "master". Pozostałe wpisy w gałęzi "testowanie" to śmieci, więc nie chcę łączyć go z "głównym". Zamiast tego po prostu chcę powtórzyć 10 ostatnich zatwierdzeń na master.Powtórz ostatnią akcję N git w innym oddziale
Odpowiedz
- mistrz git checkout
- git whatchanged testowania
- git cherry-pick _________
?
Rebase powinien to zrobić.
git rebase -p --onto master testing~10 testing
Spowoduje to skopiowanie ostatnich dziesięciu rewizje na badania do opanowania i sprawiają, że nowe badania (stary testowanie będzie sierotą). Następnie możesz połączyć master z testowaniem jako fast-forward.
git checkout master
git merge testing
Używana odpowiedź Rona przed opublikowaniem. –
Być może warto zauważyć, że to pozostawia testowanie w tym samym punkcie co master, pozostawiając "śmieci" popełnia osierocenie. To może, ale nie musi być dobre. Inną możliwością byłby mistrz egzekucji git; git reset - trudne testowanie; git rebase --onto HEAD @ {1} HEAD ~ 10 –
@CharlesBailey Jakim cudem zamierzasz tam trafić? – Fredrick
Jak powiedział w uwag -inspired odpowiedź rebase
jest pozostawiając „śmieci” zobowiązuje osieroconego.
Wystarczy używać prostych narzędzi:
git checkout master
git merge testing
git checkout testing
git reset --hard HEAD~10 # Go back 10 commits (*1)
git checkout master
(* 1) Będziesz tylko „utraty” zobowiązuje od testing
oddziału, ponieważ będziesz mieć te rewizje w master
dzięki merge
.
- 1. Powtórz data.frame N razy
- 2. Wykorzystanie dysku Git w oddziale
- 3. hg: Zatwierdź zmiany w innym oddziale
- 4. Powtórz pierwsze n elementów tablicy
- 5. Alias Git na bieżącym oddziale
- 6. Jak uzyskać zmiany w oddziale w Git
- 7. git - zmiany w oddziale, jaki został utworzony?
- 8. Git: scalanie tylko zmian dokonanych w oddziale
- 9. GIT - przepisanie kodu rdzenia w oddzielnym oddziale
- 10. Git: Zmienianie nazwy katalogu w oddziale
- 11. Visual Studio 2015 - Zamelduj się w innym oddziale w TFS
- 12. Czy istnieje sposób na uruchomienie testów w oddziale git podczas pracy nad innym?
- 13. Łączenie niezatwierdzonych zmian w innym oddziale przy użyciu SVN
- 14. Git Clone w Innym Istniejącym Git Repo
- 15. Utrzymywanie repozytorium Git w innym repozytorium git
- 16. Jak zastąpić istniejącą akcję Uibutton (n?)?
- 17. Jak wywołać akcję w innym kontrolerze w Mojolicious?
- 18. Powtórz obraz w C#
- 19. Zatwierdź zmianę w więcej niż jednym oddziale w Git
- 20. git, zmiana w lokalnym oddziale wpływa na inne lokalne oddziały?
- 21. Dlaczego "git status" nie wyświetla nieprzerwanego zatwierdzenia w oddziale?
- 22. Znajdowanie daty/godziny pojawienia się pliku w oddziale git
- 23. Jak automatycznie rozwiązać konflikt Git, biorąc wersję w bieżącym oddziale?
- 24. Sprawdź, czy określone zatwierdzenie istnieje w oddziale git
- 25. Jak zdobyć nazwę macierzystej gałęzi git w bieżącym oddziale?
- 26. Jak zrobić, aby "git push" zawierał tagi w oddziale?
- 27. git-svn próbuje popełnić błąd w niewłaściwym oddziale
- 28. Powtórz żądanie (Angular2 - http.get) n sekund po zakończeniu
- 29. Zachowaj pliki git w innym folderze
- 30. jak wprowadzić zmiany w nowym oddziale
Tylko fyi - cherry-pick wykona tylko jedno zatwierdzenie na raz, więc będziesz musiał testować wiśnie-9, a następnie testować ~ 8, a następnie ... testować. Dlatego wolę podejście oparte na reorganizacji, które sugerował Talljoe ... oczywiście wynik jest taki sam. W rzeczywistości, jeśli wykonasz operację rebase w sposób interaktywny, git faktycznie użyje pick-picka pod maską. –
@PatNotz 'git cherry-pick' obecnie może obecnie wykonywać wiele zmian jednocześnie (np.' Git cherry-pick testing ~ 10..testing'). –
Nigdy nie powinieneś używać 'cherry-pick'. Przeczytaj [ten artykuł] (http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html), aby uzyskać więcej informacji. – Tim