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