• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Github i Visual Studio - czy jest możliwość automatycznego wysyłania commitów?

Object Storage Arubacloud
0 głosów
301 wizyt
pytanie zadane 2 lutego 2020 w Systemy operacyjne, programy przez dawid2002 Mądrala (5,190 p.)
Witam! Chciałem was zapytać, czy jak pracujecie z VS zsynchronizowanym z Github'em to jak wysyłacie commity? Jak ostatnio pisałem projekt w C# to co każdą dodaną/usuniętą metodę lub po zmienieniu czegoś ważnego w kodzie, to wysyłałem commita do repozytorium. Przez to miałem wrażenie, że zbyt dużo czasu spędzam przy wysyłaniu tych zmian (wiecie trzeba napisać komentarz do commita przed wysłaniem, później trzeba "wypchnąć" commita). Zatem czy jest możliwość automatycznego wysyłania commitów przez VS? A może jest na to inny sposób aby rozwiązać ten problem?

 

Z góry dzięki za pomoc!

2 odpowiedzi

+2 głosów
odpowiedź 2 lutego 2020 przez adrian17 Ekspert (344,860 p.)

A może jest na to inny sposób aby rozwiązać ten problem?

Zmienić podejście.

Commity powinny być powiązane z zmianami na poziomie całego projektu, nie na poziomie pojedynczych kawałków kodu. Jeśli robisz refactor i przy okazji wyrzuciłeś 10 metod, to nie robisz osobnego commita na refactor i każdą usuniętą metodę, tylko jeden w stylu "refactor, remove no longer used code". Jeśli piszesz nową funkcjonalność, to nie robisz commita co funkcję, tylko wtedy gdy czujesz że postęp prac poszedł w zauważalnym stopniu do przodu - czyli nie "dodano funkcję obliczX", "dodano guzik na funkcję obliczX" tylko jeden commit "dodano (np prototyp) funkcjonalność obliczania X".

W wielu projektach jest filozofia, że każdy commit powinien się zbudować, przejść testy, czasem nawet mieć nowe testy i odopowiedni coverage - to też znacząco kontroluje ilość commitów, bo nie możesz np zrobić commita w środku pracy, z nie budującym się kodem.

komentarz 2 lutego 2020 przez dawid2002 Mądrala (5,190 p.)
Czyli rozumiem, że nie można automatycznie wysyłać commitów?
1
komentarz 2 lutego 2020 przez adrian17 Ekspert (344,860 p.)
Nie kojarzę takiej wbudowanej możliwości. Natomiast tak jak mówię - nawet gdyby była, bo byłaby uważana za niechcianą. Git jest po to żeby organizować pracę nad kodem, a nie być kopią zapasową kodu robioną co X minut.
komentarz 2 lutego 2020 przez dawid2002 Mądrala (5,190 p.)

W takim razie wielkie dzięki już wszystko wiem, zastosuję się do twojej radysmiley

0 głosów
odpowiedź 2 lutego 2020 przez Benek Szeryf (91,010 p.)

Przez VS nie wiem, ale ogólnie jest możliwość zautomatyzowania wysyłki commitów za pomocą choćby Jenkinsa czy crona, które uruchamiają się co jakiś czas. Wtedy miałbyś jednak ten problem, że nie mógłbyś opisać dokładnie jakich zmian dokonałeś.

Git jest po to żeby organizować pracę nad kodem, a nie być kopią zapasową kodu robioną co X minut.

Moim zdaniem nie do końca. Git też jest formą backupu, a jeśli masz jakiegoś Jenkinsa, który odpala się przy każdym pushu do mastera, to warto rozważyć pushowanie do feature brancha. Dopiero przy merge'u do mastera możesz sobie zesquashować wszystkie commity z feature brancha, by mieć z tego jeden commit i uruchomić całą machinę CI/CD.

Ostatnio zmieniałem architekturę autorskiego frameworka i ten proces trwał kilkanaście dni. Nie wyobrażam sobie, by w tym czasie nie zrobić ani jednego commita i pod koniec pracy utracić kod na skutek awarii komputera.

Swoją drogą jak sobie obserwuję konta na Githubie z dużą aktywnością, to ludzie robią tam commity obejmujące bardzo małe zmiany, np. https://github.com/kamranahmedse/developer-roadmap/commits/master. Użytkownik wydaje się być dość popularny wśród programistów, pomimo że używa gita niezgodnie ze sztuką.

komentarz 2 lutego 2020 przez dawid2002 Mądrala (5,190 p.)

Widzę, że zdania podzielone. Dzięki za odpowiedź yes

komentarz 2 lutego 2020 przez adrian17 Ekspert (344,860 p.)

Moim zdaniem nie do końca. Git też jest formą backupu

Ale nie zmienia to faktu, że jest przede wszystkim narzędziem do organizacji pracy nad kodem.

Dopiero przy merge'u do mastera możesz sobie zesquashować wszystkie commity z feature brancha, by mieć z tego jeden commit i uruchomić całą machinę CI/CD.

Jak najbardziej można robić tymczasowe commity i squashować, też tak robię. Ale: patrz niżej.

Nie wyobrażam sobie, by w tym czasie nie zrobić ani jednego commita i pod koniec pracy utracić kod na skutek awarii komputera.

Rozumiem to. Sam mam czasem takie cykle kilkudniowe nad jednym refactorem. Ale nawet wtedy nie robię commitów typu "snapshot z 26.03 18:00", tylko staram się organizować do postaci "zaadaptowane A, B oraz C z niedoróbkami", "dokończone C, zaadaptowano testy C" etc.

Swoją drogą jak sobie obserwuję konta na Githubie z dużą aktywnością, to ludzie robią tam commity obejmujące bardzo małe zmiany, np.

Ten konkretny przykład IMO jest słaby, bo to nie kod źródłowy. W dodatku jak spojrzysz na historię, to widać, że połowa commitów pochodzi z edytora online githuba - tam z definicji każde kliknięcie "zapisz" na każdym pliku to osobny commit.

Podobne pytania

0 głosów
1 odpowiedź 1,372 wizyt
pytanie zadane 7 grudnia 2018 w Inne języki przez Luckyluck87 Użytkownik (660 p.)
0 głosów
0 odpowiedzi 89 wizyt
pytanie zadane 15 lutego 2020 w C# przez luna22 Obywatel (1,420 p.)
0 głosów
2 odpowiedzi 485 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...