Pytania rekrutacyjne Git (Senior) z odpowiedziami
76 pytań na rozmowę rekrutacyjną z tematu Git (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Jakie cztery typy obiektów tworzą bazę obiektów Gita?
- 2.Dlaczego zmiana nazwy pliku nie duplikuje jego treści w magazynie Gita?
- 3.Czym wewnętrznie jest ref w Gicie?
- 4.Co robi
git gc? - 5.Jak packfile pomagają utrzymać małe repozytorium?
- 6.Dlaczego commit, którego nie ma już w żadnej gałęzi, wciąż da się odzyskać?
- 7.Na co Git przechodzi zamiast SHA-1 i dlaczego?
- 8.Co porównuje scalanie trójstronne?
- 9.Czym jest
ort? - 10.Czym różnią się
-s oursi-X oursprzy scalaniu? - 11.Czym jest scalanie octopus?
- 12.Jak usunąć wyciekły sekret z całej historii repozytorium?
- 13.Dlaczego dziś odradza się
git filter-branch? - 14.Kolega zrobił force-push i twój
mainsię rozjechał. Jak najbezpieczniej to naprawić? - 15.Co robi częściowy klon z
--filter=blob:none? - 16.Dlaczego
git statuszwalnia w bardzo dużych repozytoriach i co pomaga? - 17.Czym jest refspec, np.
+refs/heads/*:refs/remotes/origin/*? - 18.Submodule czy subtree: jaki jest główny kompromis?
- 19.Dlaczego revert scalenia może przeszkodzić, gdy gałąź jest później scalana ponownie?
- 20.Jak
git cherrylub wykrywanie patch-id pomaga po cherry-pick? - 21.W czym pomaga
git rebase --update-refsprzy gałęziach w stosie? - 22.Jaki problem rozwiązuje merge queue?
- 23.Dlaczego każdy commit w
mainpowinien się budować i przechodzić testy, a nie tylko końcowy stan PR? - 24.Co zrobić z commitami, których nie da się przetestować podczas
git bisect? - 25.Dzięki czemu działa
git bisect run ./test.sh? - 26.Dlaczego podpisany commit nie dowodzi jeszcze, że kod jest bezpieczny?
- 27.Co może serwerowy hook
pre-receive, czego nie mogą hooki klienckie? - 28.Co pozwala dołączyć
git notes? - 29.Dlaczego gałąź o nazwie
featuremoże blokować utworzeniefeature/login? - 30.Czym technicznie jest indeks (staging area)?
- 31.Czym podczas konfliktu są etapy indeksu 1, 2 i 3?
- 32.Jak podczas scalania wziąć dokładnie „ich” wersję pliku z konfliktem?
- 33.Co oznaczają „ours” i „theirs” podczas
git rebase main? - 34.Co robi
git replace? - 35.Jaki problem rozwiązuje blokowanie plików w Git LFS?
- 36.Dlaczego przypadkowo zacommitowane ogromne pliki to długotrwały problem nawet po usunięciu?
- 37.Co poprawia protokół Gita v2?
- 38.Co tworzy
git clone --mirror? - 39.Po co jest plik commit-graph?
- 40.Po co stosuje się stosy pull requestów?
- 41.Jak Conventional Commits umożliwiają automatyczne wydania?
- 42.Z czym ma problem
git log --follow? - 43.Dlaczego
git blamemoże pokazać złego autora po podziale pliku na dwa? - 44.Czym jest krzyżowa (criss-cross) historia scaleń?
- 45.Jak wydać wersję, której kod źródłowy da się dokładnie odtworzyć?
- 46.Dlaczego niektóre zespoły zabraniają commitów scalających z
maindo gałęzi funkcji? - 47.Co dzieje się z otwartymi pull requestami po przepisaniu historii
main? - 48.Do czego przydaje się
git bundle? - 49.Co ciekawego robi
git push origin main:production? - 50.Jakie ryzyko niesie
git config --global url."git@github.com:".insteadOf? - 51.Jak najlepiej obsługiwać poświadczenia dla zdalnych repozytoriów HTTPS?
- 52.Co konfiguruje
git maintenance start? - 53.Dlaczego „commit scalający czy squash” to decyzja zespołu, a nie osobista?
- 54.Czym jest referencja symboliczna (symbolic ref)?
- 55.Jak sprawdzić, że obiekty repozytorium nie są uszkodzone?
- 56.Dlaczego
git push --forcedo wspólnej gałęzi jest groźny nawet z kopiami zapasowymi w CI? - 57.Jaki jest kompromis monorepo w Gicie w porównaniu z wieloma repozytoriami?
- 58.Dlaczego commity po rebase zachowują datę autora, ale zmieniają datę committera?
- 59.Co pokazuje
git log --cherry-pick --left-right A...B? - 60.Jak sprawić, by ogromny diff
package-lock.jsonnie zagłuszał prawdziwej zmiany w recenzji? - 61.Na co pozwala własny sterownik scalania w
.gitattributes? - 62.Dlaczego przepisywanie historii w projekcie open source z forkami jest szczególnie uciążliwe?
- 63.Jaki jest główny powód, że Git tworzy gałęzie w stałym czasie?
- 64.Jak
git rererezachowuje się przy długim rebase, który przerywasz i robisz ponownie? - 65.Dlaczego CI na płytkim klonie może źle wyznaczyć zmienione pliki?
- 66.Czym jest „wiszący” (dangling) commit?
- 67.Dlaczego nie umieszczać sekretów w opisach commitów, nazwach gałęzi czy tagów?
- 68.Co tworzy
git switch --orphan docs? - 69.Dlaczego dwóch programistów może widzieć inny wynik tego samego polecenia
git log? - 70.Kiedy
git merge --no-ffjest przydatny, nawet jeśli możliwy jest fast-forward? - 71.Co daje recenzentowi
git range-diffpo aktualizacji PR przez force-push? - 72.Dlaczego
git stashjako długoterminowy magazyn jest ryzykowny? - 73.Co wypisuje
git log --merges --first-parentnamain? - 74.Czym grozi bardzo duża liczba refs (np. miliony refs PR)?
- 75.Dlaczego
git worktreejest bezpieczniejszy niż dwa klony repozytorium do pracy równoległej? - 76.Co dzieje się z haszami commitów przy rebase na tę samą bazę bez zmian?