Пошук уроків, статей та іншого контенту
Навчитеся створювати локальний репозиторій командою git init і отримувати копію наявного репозиторію через git clone.
Репозиторій Git — це папка проєкту, у якій Git зберігає історію змін і службову інформацію про нього.
Репозиторій може бути:
локальним — розташованим на вашому комп’ютері;
віддаленим — розташованим на сервері або платформі для зберігання коду.
У цьому уроці розглянемо дві команди:
git init — створює новий локальний репозиторій;
git clone — створює локальну копію наявного репозиторію.
git initСпочатку створіть папку для проєкту та перейдіть до неї:
mkdir my-project
cd my-projectТепер виконайте:
git initGit створить у поточній папці приховану службову папку .git. У ній зберігатимуться:
історія комітів;
інформація про гілки;
налаштування репозиторію;
дані про відстежувані файли.
Після цього папка my-project стане локальним Git-репозиторієм.
Перевірити його стан можна командою:
git statusЯкщо в папці ще немає файлів, Git повідомить, що робоче дерево порожнє.
Створимо файл README.md:
printf '# My project\n' > README.mdПеревіримо стан репозиторію:
git statusGit покаже README.md як невідстежуваний файл. Це означає, що файл існує в папці, але ще не доданий до наступного коміту.
Щоб додати його, виконайте:
git add README.mdПісля цього створіть коміт:
git commit -m "Додано README"Коміт — це збережена версія змін у локальному репозиторії.
Нижче наведено послідовність команд для створення простого репозиторію:
mkdir notes
cd notes
# Створюємо локальний репозиторій
git init
# Створюємо перший файл
printf '# Нотатки\n' > README.md
# Додаємо файл до наступного коміту
git add README.md
# Зберігаємо зміни в історії
git commit -m "Додано файл README"
# Перевіряємо стан репозиторію
git statusПісля коміту команда git status зазвичай повідомить, що робоче дерево чисте. Це означає, що всі поточні зміни вже збережені в коміті.
git cloneКоманда git clone створює копію наявного репозиторію:
git clone <адреса-репозиторію>Наприклад:
git clone https://example.com/team/project.gitЗа замовчуванням Git:
створює нову папку;
завантажує файли проєкту;
завантажує історію комітів;
налаштовує локальний репозиторій;
запам’ятовує адресу скопійованого репозиторію.
Після клонування перейдіть до створеної папки:
cd projectПеревірте стан:
git statusКлонований репозиторій уже є повноцінним локальним репозиторієм. Виконувати git init у ньому не потрібно.
Якщо потрібно назвати локальну копію інакше, вкажіть назву другим аргументом:
git clone https://example.com/team/project.git my-projectУ цьому випадку Git створить папку my-project, навіть якщо назва репозиторію на сервері — project.
Клонувати можна не лише репозиторій із сервера, а й репозиторій, розташований на цьому ж комп’ютері.
# Створюємо тимчасову папку для прикладу
workdir=$(mktemp -d)
cd "$workdir"
# Створюємо початковий репозиторій
mkdir original
cd original
git init
printf '# Початковий проєкт\n' > README.md
git add README.md
git -c user.name="Навчальний користувач" \
-c user.email="student@example.com" \
commit -m "Початковий коміт"
# Повертаємося до батьківської папки
cd ..
# Клонуємо репозиторій у нову папку
git clone original copy
# Перевіряємо скопійований файл
cat copy/README.mdУ результаті папка copy міститиме файли та історію репозиторію original.
git init і git clone: різниця| Команда | Призначення | |---|---| | git init | Перетворює наявну папку на новий локальний репозиторій | | git clone | Створює копію вже наявного репозиторію |
Використовуйте git init, коли:
починаєте новий проєкт;
у вас уже є папка з файлами;
у цій папці ще немає репозиторію Git.
Використовуйте git clone, коли:
репозиторій уже створено кимось іншим;
потрібно отримати копію проєкту;
ви приєднуєтеся до роботи над наявним проєктом.
Під час клонування Git зберігає адресу джерела під стандартною назвою origin.
Переглянути цю адресу можна командою:
git remote -vПриклад результату:
origin https://example.com/team/project.git (fetch)
origin https://example.com/team/project.git (push)Це не змінює локальні файли, а лише показує, звідки репозиторій було клоновано.
Важливо: команда git init сама по собі не створює репозиторій на сервері й не завантажує код в інтернет. Вона створює лише локальний репозиторій у поточній папці.
mkdir my-project
cd my-project
git initПотім можна створювати файли, додавати їх командою git add і зберігати зміни комітами через git commit.
git clone <адреса-репозиторію>
cd <назва-папки>Після цього можна працювати з файлами у створеній локальній копії.
git init не в тій папціGit ініціалізує репозиторій у поточній папці. Перед виконанням команди перевірте, де ви перебуваєте:
pwdУ Windows PowerShell для перегляду поточної папки можна використати:
Get-Locationgit initПовторний запуск git init у вже наявному репозиторії зазвичай не потрібен. Він не створює нову історію, але й не замінює необхідність роботи з наявним репозиторієм.
git clone у непорожню папкуЯкщо папка з цільовою назвою вже існує та містить файли, Git може відмовитися виконувати клонування. Клонуйте в нову папку або вкажіть іншу назву:
git clone <адреса-репозиторію> another-folderЯкщо команда git status повідомляє, що поточна папка не є репозиторієм, перевірте шлях і перейдіть до правильної папки:
cd my-project
git statusПеревірте адресу репозиторію та переконайтеся, що у вас є доступ до нього. Для приватних репозиторіїв також можуть знадобитися відповідні облікові дані.
git init створює новий локальний репозиторій у поточній папці.
Після git init у папці з’являється прихована папка .git.
git clone створює локальну копію наявного репозиторію.
Клонування переносить не лише файли, а й історію комітів.
Для клонованого репозиторію не потрібно додатково виконувати git init.
Після клонування адреса джерельного репозиторію зберігається під назвою origin.