Питання на співбесіді з Git (Senior) з відповідями

76 запитань для співбесіди з теми Git (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Які чотири типи об'єктів складають базу об'єктів Git?
  2. 2.Чому перейменування файлу не дублює його вміст у сховищі Git?
  3. 3.Що таке ref усередині Git?
  4. 4.Що робить git gc?
  5. 5.Як packfile допомагають тримати репозиторій малим?
  6. 6.Чому коміт, якого вже немає в жодній гілці, ще можна відновити?
  7. 7.На що Git переходить замість SHA-1 і чому?
  8. 8.Що порівнює тристороннє злиття?
  9. 9.Що таке ort?
  10. 10.Чим відрізняються -s ours і -X ours при злитті?
  11. 11.Що таке octopus-злиття?
  12. 12.Як прибрати секрет, що витік, з усієї історії репозиторію?
  13. 13.Чому git filter-branch сьогодні не радять?
  14. 14.Колега зробив force-push, і ваш main розійшовся. Як найбезпечніше відновитися?
  15. 15.Що робить частковий клон з --filter=blob:none?
  16. 16.Чому git status гальмує в дуже великих репозиторіях і що допомагає?
  17. 17.Що таке refspec, наприклад +refs/heads/*:refs/remotes/origin/*?
  18. 18.Submodule чи subtree: у чому головний компроміс?
  19. 19.Чому revert злиття може завадити, коли гілку згодом зливають знову?
  20. 20.Як git cherry чи виявлення patch-id допомагає після cherry-pick?
  21. 21.У чому допомагає git rebase --update-refs для гілок-стеків?
  22. 22.Яку проблему розв'язує merge queue?
  23. 23.Чому кожен коміт у main має збиратися й проходити тести, а не лише фінальний стан PR?
  24. 24.Що робити з комітами, які неможливо перевірити під час git bisect?
  25. 25.Завдяки чому працює git bisect run ./test.sh?
  26. 26.Чому підписаний коміт ще не доводить, що код безпечний?
  27. 27.Що може серверний хук pre-receive, чого не можуть клієнтські?
  28. 28.Що дає змогу прикріпити git notes?
  29. 29.Чому гілка з назвою feature може заважати створити feature/login?
  30. 30.Що технічно являє собою індекс (staging area)?
  31. 31.Що таке стадії індексу 1, 2 і 3 під час конфлікту?
  32. 32.Як під час злиття взяти саме «їхню» версію конфліктного файлу?
  33. 33.Що означають «ours» і «theirs» під час git rebase main?
  34. 34.Що робить git replace?
  35. 35.Яку проблему розв'язує блокування файлів у Git LFS?
  36. 36.Чому випадково закомічені величезні файли - довгострокова проблема навіть після видалення?
  37. 37.Що покращує протокол Git v2?
  38. 38.Що створює git clone --mirror?
  39. 39.Навіщо потрібен файл commit-graph?
  40. 40.Навіщо використовують стеки пул-реквестів?
  41. 41.Як Conventional Commits дають змогу автоматизувати релізи?
  42. 42.З чим має труднощі git log --follow?
  43. 43.Чому git blame може показати не того автора після розділення файлу на два?
  44. 44.Що таке перехресна (criss-cross) історія злиттів?
  45. 45.Як випустити реліз, вихідний код якого можна точно відтворити?
  46. 46.Чому деякі команди забороняють merge-коміти з main у гілки фіч?
  47. 47.Що стається з відкритими пул-реквестами, коли переписують історію main?
  48. 48.Для чого корисний git bundle?
  49. 49.Чим цікава команда git push origin main:production?
  50. 50.Який ризик несе git config --global url."git@github.com:".insteadOf?
  51. 51.Як найкраще працювати з обліковими даними для HTTPS-репозиторіїв?
  52. 52.Що налаштовує git maintenance start?
  53. 53.Чому «merge-коміт чи squash» - рішення команди, а не особисте?
  54. 54.Що таке символьне посилання (symbolic ref)?
  55. 55.Як перевірити, що об'єкти репозиторію не пошкоджені?
  56. 56.Чому git push --force у спільну гілку небезпечний навіть за наявності бекапів у CI?
  57. 57.Який компроміс монорепозиторію на Git порівняно з багатьма репозиторіями?
  58. 58.Чому коміти після rebase зберігають дату автора, але змінюють дату коміттера?
  59. 59.Що показує git log --cherry-pick --left-right A...B?
  60. 60.Як не дати величезному diff package-lock.json заглушити справжню зміну на рев'ю?
  61. 61.Що дає власний драйвер злиття в .gitattributes?
  62. 62.Чому переписування історії в open-source проєкті з форками особливо руйнівне?
  63. 63.Яка головна причина того, що Git створює гілки за сталий час?
  64. 64.Як git rerere поводиться з довгим rebase, який ви скасували й робите знову?
  65. 65.Чому CI на поверхневому клоні може неправильно визначити змінені файли?
  66. 66.Що таке «висячий» (dangling) коміт?
  67. 67.Чому не варто класти секрети в повідомлення комітів, назви гілок чи тегів?
  68. 68.Що створює git switch --orphan docs?
  69. 69.Чому двоє розробників можуть бачити різний результат тієї самої команди git log?
  70. 70.Коли git merge --no-ff корисний, навіть якщо можливий fast-forward?
  71. 71.Що дає рев'юеру git range-diff після оновлення PR через force-push?
  72. 72.Чому git stash ризиковано використовувати як довгострокове сховище?
  73. 73.Що виводить git log --merges --first-parent на main?
  74. 74.Чим загрожує дуже велика кількість refs (наприклад, мільйони refs PR)?
  75. 75.Чому git worktree безпечніший за два клони репозиторію для паралельної роботи?
  76. 76.Що відбувається з хешами комітів, якщо зробити rebase на ту саму базу без змін?