@@ -1740,7 +1740,333 @@ IntelliJ, Meld).
17401740</details >
17411741
17421742<details >
1743- <summary >61. ???</summary >
1743+ <summary >61. Як налаштувати ім’я користувача та email у Git?</summary >
1744+ 1745+ #### GIT
1746+ 1747+ - Для глобальних налаштувань (усі репозиторії):
1748+ 1749+ ``` bash
1750+ git config --global user.name " Ваше Ім’я"
1751+ git config --global user.email " ваш@email.com"
1752+ ```
1753+ 1754+ - Для конкретного репозиторію (тільки в поточному):
1755+ 1756+ ``` bash
1757+ git config user.name " Ваше Ім’я"
1758+ git config user.email " ваш@email.com"
1759+ ```
1760+ 1761+ - Перевірка:
1762+ 1763+ ``` bash
1764+ git config --list
1765+ ```
1766+ 1767+ Email важливий для зв’язку комітів з GitHub/GitLab профілем.
1768+ 1769+ </details >
1770+ 1771+ <details >
1772+ <summary >62. Які рівні конфігурації Git існують і яка їхня область дії?</summary >
1773+ 1774+ #### GIT
1775+ 1776+ - Git має три рівні конфігурації:
1777+ 1778+ 1 . ** System** (/etc/gitconfig) – застосовується для всіх користувачів і всіх
1779+ репозиторіїв на машині.
1780+ 1781+ ``` bash
1782+ git config --system ...
1783+ ```
1784+ 1785+ 2 . ** Global** (~ /.gitconfig або ~ /.config/git/config) – застосовується для
1786+ поточного користувача на всіх його репозиторіях.
1787+ 1788+ ``` bash
1789+ git config --global ...
1790+ ```
1791+ 1792+ 3 . ** Local** (.git/config у корені репозиторію) – застосовується лише для цього
1793+ репозиторію. Має найвищий пріоритет.
1794+ 1795+ ``` bash
1796+ git config ...
1797+ ```
1798+ 1799+ Пріоритет: local > global > system.
1800+ 1801+ </details >
1802+ 1803+ <details >
1804+ <summary >63. Як у Git створити alias (псевдонім) для команди?</summary >
1805+ 1806+ #### GIT
1807+ 1808+ Псевдоніми додають через git config. Наприклад:
1809+ 1810+ - Глобально (для всіх репозиторіїв):
1811+ 1812+ ``` bash
1813+ git config --global alias.st status
1814+ git config --global alias.co checkout
1815+ git config --global alias.br branch
1816+ git config --global alias.cm " commit -m"
1817+ ```
1818+ 1819+ - У конкретному репозиторії:
1820+ 1821+ ``` bash
1822+ git config alias.lg " log --oneline --graph --all --decorate"
1823+ ```
1824+ 1825+ Після цього можна виконувати, наприклад:
1826+ 1827+ ``` bash
1828+ git st
1829+ git co main
1830+ git lg
1831+ ```
1832+ 1833+ Зберігаються псевдоніми у файлі ~ /.gitconfig або .git/config.
1834+ 1835+ </details >
1836+ 1837+ <details >
1838+ <summary >64. Для чого використовується файл .gitignore у Git?</summary >
1839+ 1840+ #### GIT
1841+ 1842+ - ` .gitignore ` визначає, які файли й папки Git має ігнорувати — тобто не
1843+ відстежувати і не додавати у коміти.
1844+ 1845+ #### Використовується для:
1846+ 1847+ - тимчасових файлів (логів, кешів, .DS_Store, thumbs.db);
1848+ 1849+ - залежностей (node_modules/, vendor/);
1850+ 1851+ - згенерованих артефактів (білди, coverage-звіти);
1852+ 1853+ - локальних конфігів (наприклад, .env).
1854+ 1855+ Важливо: .gitignore не видаляє файли, які вже відстежуються Git, лише забороняє
1856+ додавати нові.
1857+ 1858+ </details >
1859+ 1860+ <details >
1861+ <summary >65. Як налаштувати глобальний .gitignore, щоб ігнорувати файли у всіх репозиторіях?</summary >
1862+ 1863+ #### GIT
1864+ 1865+ 1 . Створити глобальний файл, наприклад:
1866+ 1867+ ``` bash
1868+ touch ~ /.gitignore_global
1869+ ```
1870+ 1871+ 2 . Додати в нього правила (наприклад, IDE, системні файли):
1872+ 1873+ ``` bash
1874+ .DS_Store
1875+ Thumbs.db
1876+ node_modules/
1877+ * .log
1878+ ```
1879+ 1880+ 3 . Прописати Git, щоб він його використовував:
1881+ 1882+ ``` bash
1883+ git config --global core.excludesfile ~ /.gitignore_global
1884+ ```
1885+ 1886+ 4 . Перевірити:
1887+ 1888+ ``` bash
1889+ git config --list | grep excludesfile
1890+ ```
1891+ 1892+ Тепер усі нові репозиторії автоматично ігноруватимуть ці файли.
1893+ 1894+ </details >
1895+ 1896+ <details >
1897+ <summary >66. Як налаштувати Git для підпису комітів GPG-ключем?</summary >
1898+ 1899+ #### GIT
1900+ 1901+ 1 . Створити або імпортувати GPG-ключ
1902+ 1903+ ``` bash
1904+ gpg --full-generate-key gpg --list-secret-keys --keyid-format=long
1905+ ```
1906+ 1907+ - Скопіювати GPG_KEY_ID.
1908+ 1909+ 2 . Сказати Git, який ключ використовувати
1910+ 1911+ ``` bash
1912+ git config --global user.signingkey GPG_KEY_ID git config --global
1913+ commit.gpgsign true # підписувати всі коміти
1914+ ```
1915+ 1916+ 3 . Опціонально — підписувати лише вибрані коміти
1917+ 1918+ ``` bash
1919+ git commit -S -m " Signed commit"
1920+ ```
1921+ 1922+ 4 . Для GitHub/GitLab
1923+ 1924+ - Вивести публічний ключ:
1925+ 1926+ ``` bash
1927+ gpg --armor --export GPG_KEY_ID
1928+ ```
1929+ 1930+ - Додати його в налаштування акаунта (GPG keys).
1931+ 1932+ 5 . Перевірка
1933+ 1934+ ``` bash
1935+ git log --show-signature
1936+ ```
1937+ 1938+ 6 . У VS Code потрібно додати в settings.json:
1939+ 1940+ ``` json
1941+ "git.enableCommitSigning" : true
1942+ ```
1943+ 1944+ </details >
1945+ 1946+ <details >
1947+ <summary >67. Які найпоширеніші практики безпеки при роботі з Git-репозиторіями?</summary >
1948+ 1949+ #### GIT
1950+ 1951+ 1 . ** SSH-ключі замість паролів** – для автентифікації з віддаленими
1952+ репозиторіями.
1953+ 1954+ 2 . ** GPG-підпис комітів** – гарантія авторства і цілісності коду.
1955+ 1956+ 3 . ** .gitignore для секретів** – не зберігати .env, ключі, паролі в репозиторії.
1957+ 1958+ 4 . ** Сканування на секрети** (наприклад, GitGuardian, TruffleHog) перед пушем.
1959+ 1960+ 5 . ** Обмеження доступу** – мінімальні права (read/write), захищені гілки
1961+ (protected branches).
1962+ 1963+ 6 . ** Pull Request review** – код потрапляє в main тільки після рев’ю.
1964+ 1965+ 7 . ** CI/CD з секретним сховищем** (Vault, GitHub Actions Secrets) замість
1966+ hardcode.
1967+ 1968+ 8 . ** Регулярне оновлення залежностей** – щоб уникнути вразливостей.
1969+ 1970+ Головне правило: ніколи не зберігати у Git секретні дані у відкритому вигляді.
1971+ 1972+ </details >
1973+ 1974+ <details >
1975+ <summary >68. Які способи існують для зберігання конфіденційних даних у Git-репозиторії у зашифрованому вигляді?</summary >
1976+ 1977+ #### GIT
1978+ 1979+ 1 . ` git-crypt ` – прозоре шифрування вибраних файлів у репозиторії (розшифровка
1980+ тільки для користувачів із ключами).
1981+ 1982+ 2 . ` git-secre ` t – базується на GPG, дозволяє шифрувати .env, ключі та інші
1983+ секрети.
1984+ 1985+ 3 . ` SOPS (Mozilla SOPS) ` – зручний інструмент для керування секретами (AES +
1986+ інтеграція з AWS KMS, GCP KMS, HashiCorp Vault).
1987+ 1988+ 4 . ` BlackBox (StackExchange) ` – управління зашифрованими файлами в репозиторіях.
1989+ 1990+ 5 . ` Зберігати секрети поза Git ` – у менеджерах секретів (Vault, AWS Secrets
1991+ Manager, Doppler), а в репозиторії залишати лише посилання/шаблони
1992+ (.env.example).
1993+ 1994+ 📌 На практиці: для фронтенд/.NET проєкту зручніше або git-secret + GPG, або
1995+ SOPS, якщо інфраструктура в AWS/GCP.
1996+ 1997+ </details >
1998+ 1999+ <details >
2000+ <summary >69. Які існують стратегії зберігання та керування обліковими даними (credentials) у Git?</summary >
2001+ 2002+ #### GIT
2003+ 2004+ 1 . Credential helpers Git
2005+ 2006+ - ` cache ` — тимчасове збереження у пам’яті.
2007+ 2008+ - ` store ` — збереження у відкритому вигляді у файлі (небезпечний варіант).
2009+ 2010+ - ` manager ` (Windows) або ` osxkeychain ` (macOS) — інтеграція з системним
2011+ менеджером паролів.
2012+ 2013+ 2 . SSH-ключі
2014+ 2015+ - Основний безпечний метод для GitHub/GitLab.
2016+ 2017+ - Використання ` ssh-agent ` для зручності.
2018+ 2019+ 3 . Персональні токени доступу (PAT)
2020+ 2021+ - Альтернатива паролям (наприклад, для GitHub).
2022+ 2023+ - Краще зберігати через credential manager.
2024+ 2025+ 4 . GPG-підпис
2026+ 2027+ - Для підтвердження авторства комітів, не для аутентифікації.
2028+ 2029+ 5 . Secrets Manager (AWS, Vault, Doppler і т.д.)
2030+ 2031+ - Для CI/CD або автоматизації замість хардкоду.
2032+ 2033+ 📌 Найкраща практика: SSH-ключі для доступу + Credential Manager для зручності +
2034+ Secrets Manager для CI/CD.
2035+ 2036+ </details >
2037+ 2038+ <details >
2039+ <summary >70. Які способи є для скасування доступу користувачу до Git-репозиторію?</summary >
2040+ 2041+ #### GIT
2042+ 2043+ 1 . GitHub / GitLab / Bitbucket
2044+ 2045+ - Власник або адміністратор видаляє користувача з collaborators або з
2046+ групи/команди.
2047+ 2048+ - Можна змінити права доступу (read → none).
2049+ 2050+ 2 . SSH-ключі
2051+ 2052+ - Видалити публічний ключ користувача з налаштувань репозиторію або сервера.
2053+ 2054+ 3 . Персональні токени (PAT)
2055+ 2056+ - Відкликати або видалити токен у налаштуваннях акаунта.
2057+ 2058+ 4 . CI/CD секрети
2059+ 2060+ - Якщо користувач мав доступ до секретів (наприклад, у GitHub Actions), треба їх
2061+ відкликати/оновити.
2062+ 2063+ Загальний принцип: відкликати доступ на рівні платформи (GitHub/GitLab) +
2064+ знеактивувати ключі/токени.
2065+ 2066+ </details >
2067+ 2068+ <details >
2069+ <summary >71. ???</summary >
17442070
17452071#### GIT
17462072
0 commit comments