Tak z ciekawości, ilu z Was wie jak git działa "pod spodem" i potrafi to wyjaśnić z mniejszymi bądź większymi szczegółami? Mam na myśli na przykład: - jak i na podstawie czego generowane są hashe commitów, - jak na commita wpływa "--amend" i co się wtedy naprawdę pod spodem tam dzieje, - jak działa "git stash", ale nie na zasadzie "odkłada zmiany na bok", ale co się tam faktycznie dzieje pod spodem
Tak mnie wczoraj naszło, że korzystam z gita bez większych problemów, łącznie z bardziej zaawansowanymi problemami, które czasem trzeba odkręcić, bo ktoś mniej go ogarniający napsuł, ale nie w każdym przypadku wiem, co tam dokładnie dzieje się "pod spodem". I nie wiem, czy tylko ja tak mam, czy to coś bardziej powszechnego.
@zmarnowany_czas: czytałem o tym kiedyś i robiłem jakiś kurs na frontendmasters, ale nic z tego nie pamiętam no bo po co? IDĘ robi za mnie 90% rzeczy plus 99% mojej pracy składa się z git commit i push xD
@zmarnowany_czas: Wiem jak działa w teorii, potrafiłbym to odtworzyć (to co wiem przynajmniej) ale nie interesują mnie szczegóły implementacyjne i nieistotne w codziennym użytku ¯\(ツ)/¯
@szmichal: ja nie wiem, jak niektórzy potrafią to zrobić, ale na przykład na swoim lokalnym branchu mają wszystkie swoje commity zduplikowane (na zasadzie A->B->C->D->E->A->B->C->D->E, a oprócz tego zrobili coś, że 50 poprzednich commitów ma zmieniony hash, więc w diffie wygląda, jakby pół repo przeorali. I takie osoby zawsze po pytaniu jak to zrobili, odpowiadają tak samo: "nie wiem".
@zmarnowany_czas: Brzmi jak nieumiejętne używanie rebase lub amend. Ja takim mówię by wystawili jeszcze raz PR z brancha który nie będzie wprowadzał takiego śmietnika do repo.
@zmarnowany_czas: Troche Googla troche chata GPT: Git stash zapisuje zmiany w specjalnych commitach poza główną historią gałęzi. 1 Commit dla indeksu (zmiany zstage'owane) który zapisuje zmiany dodane do indeksu (staging area) - Cindex. 2 Commit dla katalogu roboczego (zmiany niezstage'owane), który zapisuje zmiany w katalogu roboczym, które nie zostały zstage'owane. - Cwork. Git aktualizuje "refs/stash", aby wskazywał na
@JayCube: paaanie, tak to i ja potrafię. Bardziej chodzi mi o sytuację, kiedy nie masz do nich dostępu i miałbyś o tym opowiedzieć, np. na rozmowie rekrutacyjnej (pomijalność sensowności pytania o takie rzeczy)
@zmarnowany_czas: Tylko że takie pytania nie mają sensu. Generalnie to wystarczy zapytać które operacje zmieniają hash commita i jak sobie radzić w takich sytuacjach. + Można zapytać kandydata w jakich sytuacjach będzie korzystał z tych operacji, a kiedy się od nich powstrzyma.
@zmarnowany_czas: Wiem jak dziala git "pod spodem" ale nigdy nie musialem sie w to zaglebiac pracujac w komercyjnych projektach. Commit / Push / Pull / Stash / Add / Reset / Merge wystarczy do pracy w 98% projektow. Jak potrzebujesz jakies bardziej skomplikowanej komendy to sprawdzasz jak dziala.
Dla przykladu nie wiem jak dokladnie dziala wiertarka, wiem co jestem w stanie z nia zrobic ale technicznie, sczegolowo nie bylbym w
@oldspiceedit: @zmarnowany_czas Parafrazując wiertarkę, jeżeli ktoś się ciebie pyta na rozmowie rekrutacyjnej na stolarza o budowę silnika elektrycznego we wkrętarkę, to odpowiadasz grzecznie że nie wiesz. Chyba że to rozmowa o pracę w miejscu gdzie się te wiertarki projektuje. Ale aplikując tam, raczej wiesz takie rzeczy…
@zmarnowany_czas: Pytanie na zasadzie "czy wiesz jak działa młot pneumatyczny ''pod spodem''???" xD Narzędzia są po to, by wykonywać nimi pracę, a nie dochodzić jak działają ¯\(ツ)/¯
- jak i na podstawie czego generowane są hashe commitów,
- jak na commita wpływa "--amend" i co się wtedy naprawdę pod spodem tam dzieje,
- jak działa "git stash", ale nie na zasadzie "odkłada zmiany na bok", ale co się tam faktycznie dzieje pod spodem
Tak mnie wczoraj naszło, że korzystam z gita bez większych problemów, łącznie z bardziej zaawansowanymi problemami, które czasem trzeba odkręcić, bo ktoś mniej go ogarniający napsuł, ale nie w każdym przypadku wiem, co tam dokładnie dzieje się "pod spodem". I nie wiem, czy tylko ja tak mam, czy to coś bardziej powszechnego.
#programowanie #programista15k
Wiesz jak git działa "pod spodem"?
Ale zawsze całych czy samych diffów? :)
Git stash zapisuje zmiany w specjalnych commitach poza główną historią gałęzi.
1 Commit dla indeksu (zmiany zstage'owane) który zapisuje zmiany dodane do indeksu (staging area) - Cindex.
2 Commit dla katalogu roboczego (zmiany niezstage'owane), który zapisuje zmiany w katalogu roboczym, które nie zostały zstage'owane. - Cwork.
Git aktualizuje "refs/stash", aby wskazywał na
Dla przykladu nie wiem jak dokladnie dziala wiertarka, wiem co jestem w stanie z nia zrobic ale technicznie, sczegolowo nie bylbym w