Załóżmy, że mam gałąź linii głównej i gałąź funkcji. Kilka razy włączyłem gałąź główną do gałęzi z funkcjami, ale miałem tylko kilka bardzo drobnych konfliktów scalających. Chcę uporządkować historię, aby na końcu było tylko jedno połączenie. Jaka jest najlepsza metoda na zrobienie tego?Łączenie łączy w jedno scalenie
Odpowiedz
Czy zapoznałeś się z git rebase
?
git co -b temp_feature feature
git rebase master
Powinno to zignorować scalenia, ale trzeba będzie ponownie rozwiązać konflikty. Tworzy również gałąź temp_feature dla łatwiejszego powrotu, ale to samo można osiągnąć z reflog.
(Zła odpowiedź poniżej: to stworzy pojedynczy popełnić, nie pojedynczy seryjnej: - /)
Myślę najprostszą jest zrobić następujące:
git co master
git merge --squash feature
To stworzy pojedynczy popełnić z całej gałęzi funkcji. Jeśli nie chcesz, aby utrzymać gałąź funkcji zrobić:
git branch -D feature
Można zrobić interaktywną rebase aby to osiągnąć, ale należy to zrobić tylko, więc jeśli jeszcze nie podzielił, że historia z nikim innym. W praktyce oznacza to, że powinieneś to zrobić tylko, jeśli nie zrobiłeś git push
do wspólnego repo.
Wygląda na to, że chcesz wyrwać niezobowiązkowe zatwierdzenia dla gałęzi funkcji w gałąź czystych elementów, a następnie w końcu połączyć gałąź czystych elementów z najnowszym wzorcem (cokolwiek to jest). Możesz użyć rebase, aby przyspieszyć część tego cherrypicking, którego niestety nie znam dobrego sposobu na migiem, ponieważ nie jest to coś, co robię bardzo często. Pomoże Ci to, jeśli masz gui, które pozwala wybrać wiele potwierdzeń jednocześnie.
Edit: To byłoby bardziej konkretne rozwiązanie: How to cherry pick a range of commits and merge into another branch
- 1. Łączenie wprowadzania i wybierania w jedno widoczne pole wejściowe
- 2. Scalenie dwóch list w Haskell
- 3. Scalenie dwóch list
- 4. Scalenie dwóch kolejek priorytetowych
- 5. Łączy Mat w OpenCV
- 6. Łączy w JavaScript
- 7. Ponów scalenie tylko jednego pliku
- 8. Łączenie plików w Notatniku ++
- 9. SQL Server Scalenie 2 wierszy w 1
- 10. Scalenie wielu kolumn pandy w nowej kolumnie
- 11. Scalenie gałęzi nadrzędnej w gałąź podrzędną
- 12. Scalenie dwóch liczb całkowitych w Pythonie
- 13. Usuwanie odniesień jedno- i jedno-wielu - Mongoose
- 14. Dziedziczenie danych łączy się z
- 15. Łączenie ciągów w Railsach 3
- 16. Łączenie partycjonowane w iskrze SQL
- 17. Multiple tabeli łączy w szynach
- 18. Łączy szereg i „%” w Sass
- 19. Jak połączyć wojny w jedno?
- 20. Scalenie kolekcji kręgosłupa z odpowiedzią serwera
- 21. Czy mogę wykonać scalenie poddrzewa z podkatalogu?
- 22. Scalenie rozdzielczości konfliktu za pomocą nowego kodu
- 23. Przyjmuje i łączy w podkatalogach SVN za szkodliwe?
- 24. Numpy łączy tablice 2D z tablicą 1D
- 25. MySQL Insert & Łączy
- 26. SQL Łączy smyczkowy Wynik
- 27. Łączenie wiosenne Łączenie
- 28. subwersja łączy polecenie usuwania
- 29. Scalenie dwóch macierzy w macierz w pytonie i sortowanie
- 30. Zagnieżdżona kwerenda lub łączy
Kiedy mówisz oczyścić historię, trzeba być bardziej szczegółowe. Jeśli chcesz usunąć scalenia z głównej linii do funkcji, musisz zdecydować, jak ma wyglądać gałąź funkcji, z usuniętymi połączeniami. Na przykład, jeśli niektóre prace w gałęzi elementów zależą od zmian wprowadzonych w głównej linii (a następnie scalonych w gałąź operacji), usunięcie scaleń spowoduje, że gałąź funkcji przestanie się kompilować, ponieważ zależy to od usuniętego kodu. –
@KevinBallard: To jest poprawny punkt. W niektórych przypadkach możesz chcieć przesunąć gałąź do góry. Nie jestem tym zbyt zaniepokojony, jeśli chodzi o to pytanie, chcę tylko upewnić się, że oddział wraca tylko raz – Casebash