Mój zespół używa github i sourcetree do zarządzania naszym przepływem pracy. Niedawno zaczęliśmy wypróbowywać funkcję github's squash merge. Naprawdę podoba nam się to, jak utrzymuje porządek w naszej historii pracy i zasadniczo ma jeden commit na PR.Nie można ustalić, czy oddział został scalony podczas używania squasha.
Jedną z nieoczekiwanych wad korzystania ze skryptów squasha jest to, że trudno jest określić, kiedy można usunąć lokalny oddział. Cały mój zespół wydaje się zarządzać swoimi lokalnymi oddziałami, ponieważ jest w stanie wizualnie zobaczyć na wykresie commitów, że został scalony i co kilka dni przechodzimy przez nasze lokalne oddziały, jeden po drugim, sprawdzając, czy zostały scalone, a następnie usuń go lokalnie, jeśli tak. Włączenie scalania squasha usuwa tę wizualizację i utrudnia nam stwierdzenie, czy gałąź została scalona.
Chcielibyśmy użyć funkcji zatwierdzania squasha, ale potrzebujemy niezawodnego sposobu na sprawdzenie, czy oddział został scalony i czy można go bezpiecznie usunąć lokalnie. Czy są jakieś dobre sposoby, o których nie pomyśleliśmy, aby to osiągnąć?
Jeśli masz dostęp do powłoki, możesz 'git diff. Lub jeśli nie możesz powiedzieć, który commit jest połączeniem, może 'git checkout ; git rebase origin/master; git diff HEAD origin/master' –
0x5453
Czy github i sourcetree nie oferują opcji '- first-parent'? Zlinearyzowane historie mogą być łatwiejsze do przyjrzenia się, ale byłyby dokładniej napisane "lobotomizowane". Czasem to wszystko, czego potrzebujesz, ale to ograniczenie jako sposób na życie. – jthill
@ 0x5453 uruchamianie poleceń git dla każdego oddziału nie wydaje się rozwiązaniem bardzo skalowalnym. Musielibyśmy stworzyć skrypt lub coś w celu iteracji przez wszystkie lokalne gałęzie i usunąć te, które zostały scalone. To może być coś, co może zadziałać. jthill Nie wierzę, że tak. – spierce7