Створення репозиторію
Останнє оновлення 2025-01-28 | Редагувати цю сторінку
Приблизний час: 10 хвилин
Огляд
Питання
- Де Git зберігає інформацію?
Цілі
- Створити локальний репозиторій Git.
- Пояснити призначення каталогу
.git.
Після налаштування Git ми можемо почати його використання.
Ми продовжимо нашу вигадану історію, у якій Альфредо досліджує, чи можливо відправити планетарний посадковий модуль на Марс.
Перш за все, створімо у каталозі Desktop новий
підкаталог для нашої роботи, а потім змінимо поточний робочий каталог на
новостворений:
Далі ми кажемо Git зробити recipes репозиторієм -- місцем, де Git може
зберігати версії наших файлів:
Майте на увазі, що git init створює репозиторій, до
якого можна додавати підкаталоги та їх файли. Немає потреби створювати
окремі репозиторії вкладені в репозиторій recipes,
незалежно від того чи були підкаталоги присутні від початку або були
додані пізніше. Крім того, зверніть увагу, що створення каталогу
recipes та його ініціалізація як репозиторію є повністю
окремими процесами.
Якщо ми використаємо ls, щоб передивитись зміст
каталогу, то здається, що нічого не змінилося:
Але якщо ми додамо опцію -a, щоб показати всі файли, то
побачимо, що Git створив у каталозі recipes прихований
каталог під назвою .git:
ВИХІД
. .. .git
Git використовує цей спеціальний підкаталог для зберігання всієї
інформації про проєкт, у тому числі відстежувані файли і підкаталоги, що
розташовані в каталозі проєкту. Якщо ми коли-небудь видалимо підкаталог
.git, то ми втратимо усю історію проєкту.
Тепер ми можемо почати використовувати одну з найважливіших команд
git, яка особливо корисна для початківців. git status
друкує інформацію про поточний стан нашого проєкту, та перелік зроблених
змін у проєкті з варіантами щодо подальших дій. Ми можемо
використовувати цю команду необмежену кількість разів, як тільки ми
хочемо зрозуміти, що відбувається.
ВИХІД
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
Якщо ви користуєтеся іншою версією git, вигляд
результату цієї команди може дещо відрізнятися.
Де створювати репозиторії Git
Відстежуючи інформацію про рецепти (проєкт, який ми вже створили),
Альфредо також хотів би особливо відстежувати інформацію, пов’язану саме
з десертами. Альфредо створює проєкт desserts всередині
свого проєкту recipes за допомогою наступної послідовності
команд:
BASH
$ cd ~/Desktop # повернутися до каталогу Desktop
$ cd recipes # перейти до каталогу recipes, який вже є репозиторієм Git
$ ls -a # перевірити, що підкаталог .git все ще присутній у каталозі recipes
$ mkdir desserts # створити підкаталог recipes/desserts
$ cd desserts # перейти у підкаталог desserts
$ git init # створити репозиторій Git у підкаталозі desserts
$ ls -a # перевірити наявність підкаталогу .git, що підтверджує створення нового репозиторію
Чи потрібно запускати команду git init у підкаталозі
desserts для відстеження файлів, розташованих у підкаталозі
desserts?
Ні. Альфредо не потрібно робити окремий підкаталог
desserts репозиторієм Git, оскільки репозиторій
recipes відстежуватиме будь-які файли, підкаталоги, та
файли у підкаталогах в ньому. Таким чином, щоб відстежувати всю
інформацію про десерти, Альфредо повинен був лише додати підкаталог
desserts до каталогу recipes.
Крім того, репозиторії Git можуть заважати один одному, якщо вони
“вкладені”: зовнішній репозиторій намагатиметься відстежувати зміни у
внутрішньому репозиторії. Тому найкраще кожного разу створювати новий
репозиторій Git в окремому каталозі. Щоб переконатися, що каталог не є
репозиторієм, перевірте результат команди git status. Якщо
він виглядає як показано нижче, ви можете створити новий репозиторій, як
було показано вище:
ВИХІД
fatal: Not a git repository (or any of the parent directories): .git
Виправлення помилок git init
Джиммі пояснив Альфредо, що вкладений репозиторій є зайвим і може
призвести до плутанини у майбутньому. Альфредо бажав би повернутися до
попередньої організації проєкту де необхідний тільки один репозиторій
Git. Як Альфредо може скасувати свою останню команду
git init виконану у підкаталозі desserts?
Контекст
Видаляти файли з репозиторію Git треба обережно. Проте, ми ще не навчилися вказувати Git як відстежувати певний файл; про це ми дізнаємося в наступному епізоді. Файли, які не відстежуються Git, можна легко видалити, як і будь-які інші “звичайні” файли:
Подібним чином можна видалити каталог за допомогою команди
rm -r dirname. Якщо файли чи каталоги, які видаляються
таким чином, вже відстежуються Git, тоді їх видалення стає ще однією
зміною, яку нам потрібно буде відстежувати (ми побачимо як це робити в
наступному епізоді).
Відповідь
Git зберігає всі свої файли в каталозі .git. Щоб
виправити цю маленьку помилку, Альфредо може просто видалити каталог
.git у підкаталозі desserts, виконавши
наступну команду всередині каталогу recipes:
Проте, будьте обережні! Виконання цієї команди у неправильному
каталозі призведе до видалення всієї історії змін проєкту, яку ви хотіли
б зберегти. Загалом, видалення файлів і каталогів за допомогою
rm з командного рядка не можна скасувати. Тому завжди
перевіряйте свій поточний каталог за допомогою команди
pwd.
-
git initініціалізує репозиторій. - Git зберігає всі дані репозиторію в каталозі
.git.