Wpis z mikrobloga

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.

#programowanie #programista15k

Wiesz jak git działa "pod spodem"?

  • Tak 18.3% (35)
  • Nie 61.3% (117)
  • Tylko w niektórych przypadkach 20.4% (39)

Oddanych głosów: 191

  • 28
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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".
  • Odpowiedz
@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.
  • Odpowiedz
@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. - C
work.
Git aktualizuje "refs/stash", aby wskazywał na
  • Odpowiedz
@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)
  • Odpowiedz
@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.
  • Odpowiedz
@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
  • Odpowiedz
@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…
  • Odpowiedz
@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ą ¯\(ツ)/¯
  • Odpowiedz