2.1 Основи Git – Створення Git-репозиторію

Якщо ви хочете почати працювати з Git, прочитавши лише один розділ, то цей розділ – те, що вам потрібно. Тут розглянуті всі базові команди, необхідні для вирішення переважної більшості завдань, що виникають під час роботи з Git. Після прочитання цього розділу ви навчитеся налаштовувати та ініціалізувати репозиторій, починати та припиняти контроль версій файлів, а також готувати та фіксувати зміни. Ми також продемонструємо вам, як налаштувати в Git ігнорування окремих файлів або їх груп, як швидко і просто скасувати помилкові зміни, як переглянути історію вашого проекту та зміни між окремими комітами (commit), а також як відправляти (push) та отримувати (pull) зміни в/з віддаленого (remote) репозиторію.

Створення Git-репозиторію

Зазвичай ви отримуєте репозиторій Git одним із двох способів:

  1. Ви можете взяти локальний каталог, який в даний час не перебуває під версійним контролем, і перетворити його на репозиторій Git, або
  2. Ви можете клонувати існуючий репозиторій Git із будь-якого місця.

В обох випадках ви отримаєте готовий до роботи репозиторій Git на вашому комп'ютері.

Створення репозиторію в існуючому каталозі

Якщо у вас вже є проект у каталозі, який не перебуває під версійним контролем Git, то спочатку потрібно перейти в нього. Якщо ви не робили цього раніше, для різних операційних систем це виглядає по-різному:

$ cd C:/Users/user/my_project

а потім виконайте команду:

Ця команда створює в поточному каталозі новий підкаталог з ім'ям .git, що містить усі необхідні файли репозиторію – структуру Git репозиторію.На цьому етапі ваш проект ще не перебуває під версійним контролем. Детальний опис файлів, що містяться в щойно створеному вами каталозі .git, наведено в розділі Git зсередини

Якщо ви хочете додати під версійний контроль існуючі файли (на відміну від порожнього каталогу), вам варто додати їх до індексу та здійснити перший коміт змін. Домогтися цього ви зможете запустивши команду git add кілька разів, вказавши файли, що індексуються, а потім виконавши git commit :

$ git add *.c $ git add LICENSE $ git commit -m 'Initial project version'

Ми розберемо, що роблять ці команди трохи згодом. Тепер у вас є Git-репозиторій з файлами, що відстежуються, і початковим коммітом.

Клонування існуючого репозиторію

Для отримання копії існуючого Git-репозиторія, наприклад проекту, в який ви хочете зробити свій внесок, необхідно використовувати команду git clone . Якщо ви знайомі з іншими системами контролю версій, такими як Subversion, то помітите, що команда називається clone, а не checkout. Ця важлива відмінність – замість того, щоб просто отримати робочу копію, Git отримує копію практично всіх даних, які є на сервері. Під час виконання git clone із сервера забирається (pulled) кожна версія кожного файлу з історії проекту. Фактично, якщо серверний диск вийде з ладу, ви можете використовувати будь-який з клонів на будь-якому з клієнтів, щоб повернути сервер у той стан, в якому він знаходився в момент клонування (ви можете втратити частину серверних хуків) і т. п., але всі дані, поміщені під версійний контроль, будуть збережені, докладніше про це дивіться в розділі Установка Git на сервер глави 4).

Клонування репозиторію здійснюється командою git clone. Наприклад, якщо ви хочете клонувати бібліотеку libgit2, ви можете зробити це так:

$ git clone https://github.com/libgit2/libgit2

Ця команда створює каталог libgit2, ініціалізує в ньому підкаталог .git, завантажує всі дані для цього репозиторію і витягує робочу копію останньої версії. Якщо ви перейдете до щойно створеного каталогу libgit2 , то побачите у ньому файли проекту, готові до роботи чи використання. Для того, щоб клонувати репозиторій у каталог з ім'ям, що відрізняється від libgit2, необхідно вказати бажане ім'я як параметр командного рядка:

$ git clone https://github.com/libgit2/libgit2 mylibgit

Ця команда робить те ж саме, що й попередня, тільки результуючий каталог буде названий mylibgit .

У Git реалізовано кілька транспортних протоколів, які можна використовувати. У попередньому прикладі використовувався протокол https:// , ви можете зустріти git:// або user@server:path/to/repo.git , що використовує протокол передачі SSH. У розділі Встановлення Git на сервер глави 4 ми познайомимося з усіма доступними варіантами конфігурації сервера для забезпечення доступу до вашого Git репозиторію, а також розглянемо їх переваги та недоліки.

2.1 Основи Git – Створення Git-репозиторію - Mriya.v.ua

Цей навчальний матеріал включає огляд налаштування репозиторію в системі контролю версій Git. На цій сторінці ви дізнаєтесь, як ініціалізувати репозиторій Git для нового або існуючого проекту. Нижче наведено приклади життєвого циклу для репозиторіїв, створених локально та клонованих з віддалених репозиторіїв.Для роботи з цим посібником потрібні початкові знання роботи з інтерфейсом командного рядка.

У цьому посібнику обговорюються такі основні питання:

  • Ініціалізація нового репозиторію Git
  • Клонування існуючого репозиторію Git
  • Коміт зміненої версії файлу до репозиторію
  • Конфігурування репозиторію Git для віддаленої спільної роботи
  • Поширені команди для керування версіями Git

Після закінчення цього модуля ви повинні вміти створювати репозиторій Git, використовувати основні команди Git, виконувати коміт зміненого файлу, переглядати історію проекту та налаштовувати з'єднання з сервісом хостингу Git (Bitbucket).

Що таке репозиторій Git?

Репозиторій Git – це віртуальне сховище проекту. У ньому можна зберігати версії коду для доступу за необхідності.

Ініціалізація нового репозиторію: git init

Для створення нового репозиторію використовується команда git init . Команду git init виконують лише один раз для початкового налаштування нового репозиторію.

Створення версії існуючого проекту з використанням нового репозиторію Git

У цьому прикладі передбачається, що у вас вже є папка проекту, в якій ви хочете створити репозиторій. Виконайте команду cd для переходу до папки проекту, а потім виконайте команду git init .

Пов'язані матеріали

git branch

Див. РІШЕННЯ

Вивчіть Git за допомогою Bitbucket Cloud

cd /path/to/your/existing/code 
git init

Вказівка ​​у команді git init існуючого каталогу проекту призведе до виконання описаної вище ініціалізації, але лише на рівні цього каталогу проекту.

Перейдіть на сторінку git init, щоб отримати докладнішу інформацію про команду git init .

Клонування існуючого репозиторію: git clone

Якщо проект вже налаштований у центральному репозиторії, найпоширенішим способом створити його локальний клон є команда clone. Клонування, як і команда git init, зазвичай виконується один раз. Отримавши робочу копію, розробник надалі виконує всі операції з контролю версій зі свого локального репозиторію.

Команду git clone виконують для створення копії (клонування) віддаленого репозиторію. Як параметр до команди git clone передається URL-адреса репозиторію. Git підтримує кілька різних мережевих протоколів та відповідних форматів URL-адрес. У цьому прикладі використовується SSH-протокол Git. URL-адреси SSH у Git мають наступний шаблон: git@HOSTNAME:USERNAME/REPONAME.git

Приклад URL-адреси SSH у Git має вигляд: [email protected]:rhyolight/javascript-data-store.git, а нижче наведено значення шаблонних параметрів:

  • HOSTNAME: bitbucket.org
  • USERNAME: rhyolight
  • REPONAME: javascript-data-store

Після виконання команди останні версії файлів із головної гілки віддаленого репозиторію будуть завантажені та поміщені до нового каталогу. Ім'я нового каталогу буде відповідати параметру REPONAME. В даному випадку це javascript-data-store. У каталозі буде вся історія віддаленого репозиторію і щойно створена головна гілка.

Додаткову інформацію про використання команди git clone та підтримуваних форматів URL-адрес у Git див. на сторінці git clone.

Збереження змін у репозиторії: git add та git commit

У вас з'явився репозиторій, створений шляхом клонування чи ініціалізації.Тепер ви можете виконувати комміти змін у версіях файлів. У цьому прикладі передбачається, що ви налаштували проект у каталозі /path/to/project . У цьому прикладі пропонуються такі кроки.

  • Змініть каталоги на /path/to/project
  • Створіть новий файл CommitTest.txt з текстом ~ "тест для навчання роботі з Git" ~
  • За допомогою команди git add додайте файл CommitTest.txt до репозиторій проіндексованих файлів
  • Створіть новий коміт із коментарем, який описує, що саме було змінено в коміті
cd /path/to/project 
echo "test content for git tutorial" >> CommitTest.txt
git add CommitTest.txt
git commit -m "added CommitTest.txt to the repo"

Після завершення цього прикладу файл CommitTest.txt додасться до історії репозиторію, і репозиторій відстежуватиме подальші зміни у файлі.

У цьому прикладі представлені дві нові команди Git: add і commit. Цей дуже спрощений приклад. Докладніше обидві команди пояснені на сторінках git add та git commit. Команду git add часто використовують із прапором –all. Команда git add –all додає всі змінені та невідслідковувані файли до репозиторію та оновлює дерево змін репозиторію.

Спільна робота у різних репозиторіях: git push

Важливо розуміти, що робоча копія Git істотно відрізняється від робочої копії, одержуваної при завантаженні вихідного коду з репозиторію SVN. На відміну від SVN, у Git немає різниці між робочими копіями та центральним репозиторієм – всі вони є повноцінними репозиторіями Git.

Тому спільна робота у Git принципово відрізняється від спільної роботи у SVN.У SVN робота будується на відношенні між центральним репозиторієм та робочою копією, а модель спільної роботи в Git заснована на взаємодії між репозиторіями. Замість завантаження робочої копії в центральний репозиторій SVN в Git ви відправляєте коміти з одного репозиторію до іншого або копіюєте їх у зворотному напрямку.

Ви легко можете задавати особливу роль певним репозиторіям Git. Наприклад, позначивши один із репозиторіїв Git як «центральний», ви можете відтворити централізований процес із використанням Git. Такий підхід вимагає загальних домовленостей, він не вбудований у систему контролю версій.

Порівняння чистих та клонованих репозиторіїв

Якщо у попередньому розділі («Ініціалізація нового репозиторію») для налаштування локального репозиторію ви використовували команду git clone, ваш репозиторій вже готовий до віддаленої спільної роботи. Команда git clone автоматично налаштує репозиторій, в якому значення remote буде відповідати URL-адресі Git, з якої було клоновано репозиторій. Це означає, що після зміни файлу та виконання комміту ви можете відразу виконати команду git push , щоб відправити ці зміни у віддалений репозиторій.

Якщо ви використовували команду git init для створення репозиторію з нуля, у вас не буде віддаленого репозиторію, в який можна поміщати зміни. Найчастіше для ініціалізації нового репозиторію користувач переходить на сервіс Git-хостингу (наприклад, Bitbucket) і створює там репозиторій. Даний сервіс надасть URL-адресу Git, яку потім можна додати в локальний репозиторій Git. Після цього можна виконувати команду git push у репозиторій на хостингу. Після створення віддаленого репозиторію на вибраному хостингу вам знадобиться оновити локальний репозиторій, виконавши прив'язку.Цей процес описується далі в посібнику з встановлення та налаштування.

Якщо ви вважаєте за краще підтримувати власний віддалений репозиторій, вам потрібно створити чистий репозиторій. Для цього команди git init та git clone приймають аргумент –bare. Найбільш популярна причина використання чистого репозиторію – створення віддаленого центрального репозиторію Git

Конфігурування та налаштування: git config

Після налаштування віддаленого репозиторію його URL-адресу потрібно додати до локального файлу git config , а також створити вищу гілку для локальних гілок. Таку можливість надає команда git remote.

Ця команда прив'яже віддалений репозиторій за адресою <remote_repo_url> до посилання у вашому локальному репозиторії <remote_name>. Після прив'язки віддаленого репозиторію до нього можна буде відправляти локальні гілки за допомогою команди push.

Ця команда помістить гілку локального репозиторію з ім'ям у віддалений репозиторій.

Додаткову інформацію про команду git remote див. на сторінці віддаленої роботи у Git.

Крім конфігурування URL-адреси віддаленого репозиторію, вам може знадобитися встановити глобальні параметри Git, наприклад ім'я користувача або електронну адресу. Команда git config дозволяє настроїти інсталяцію Git (або окремий репозиторій) з командного рядка. За допомогою цієї команди можна встановити будь-які налаштування: від інформації про користувача до його переваг та характеристик репозиторію. Нижче наведено поширені варіанти конфігурації.

Git зберігає варіанти конфігурації у трьох різних файлах, що дозволяють обмежувати область видимості на рівні окремих репозиторіїв (локальний), користувача (глобальний) або всієї системи (системний):

  • Локальний: /.git/config – Налаштування на рівні репозиторію.
  • Глобальний: /.gitconfig – налаштування на рівні користувача. Тут зберігаються налаштування з прапором –global.
  • Системний: $(prefix)/etc/gitconfig – налаштування на рівні всієї системи.

Вкажіть ім'я автора, яке використовуватиметься для всіх комітів у поточному репозиторії. Зазвичай для налаштування параметрів конфігурації для поточного користувача використовується прапорець –global.

git config --global user.name

Ця команда визначає ім'я автора, яке буде використовуватися для всіх коммітів, виконаних поточним користувачем.

Додавання аргументу –local або виконання команди без параметра конфігурації призведе до встановлення значення user.name для поточного локального репозиторію.

git config --local user.email

Ця команда визначає адресу електронної пошти автора, яка буде використовуватися для всіх коммітів, виконаних поточним користувачем.

git config –global або.

Створіть швидкі клавіші для Git. Це потужна можливість створення власних комбінацій клавіш для часто використовуваних команд Git. Нижче наведено спрощений приклад:

git config --global alias.ci commit

Так створюється команда ci, яку можна використовувати як скорочення команди git commit. Докладніше про аліас у Git див. на сторінці git config.

it config --system core.editor

Виберіть текстовий редактор, який використовується для таких команд, як git commit, для всіх користувачів поточного комп'ютера. Аргумент повинен бути командою, яка запускає потрібний редактор (наприклад, vi). У цьому прикладі представлений аргумент – system. Аргумент –system встановлює налаштування на рівні всієї системи, включаючи всіх користувачів та всі репозиторії на комп'ютері.Додаткову інформацію про рівні конфігурації див. на сторінці віддаленої роботи з git.

У текстовому редакторі відкрийте файл глобальної конфігурації для редагування вручну. Докладніше про налаштування текстового редактора для Git див. на сторінці Git config.

Пояснення

Усі варіанти конфігурації зберігаються у звичайних текстових файлах, так що команда git config — це лише зручний інтерфейс командного рядка. Як правило, встановлення Git слід налаштовувати тільки при початку роботи на новому комп'ютері. У переважній більшості випадків знадобиться лише прапор -global. Один із важливих винятків — необхідність переписати електронну адресу автора. Ви можете поставити особисту електронну адресу для особистих репозиторіїв та репозиторіїв з відкритим вихідним кодом, а робоча електронна адреса – для робочих репозиторіїв.

Git зберігає варіанти конфігурації у трьох різних файлах, що дозволяє обмежувати область видимості лише на рівні окремих репозиторіїв, користувачів чи всієї системи.

  • /.git/config – Налаштування на рівні репозиторію.
  • ~/.gitconfig — особисті налаштування користувача. Тут зберігаються налаштування з прапором –global.
  • $(prefix)/etc/gitconfig – налаштування на рівні всієї системи.

Якщо параметри, зазначені в цих файлах, конфліктують, локальні налаштування перевизначають налаштування користувача, які в свою чергу перевизначають системні налаштування. Якщо ви відкриєте один із цих файлів, ви побачите щось подібне:

[user] name = John Smith email = [email protected] [alias] st = status co = checkout br = branch up = rebase ci = commit [core] editor = vim

Ви можете змінити ці значення вручну, ефект аналогічний використанню команди git config .

приклад

В першу чергу після встановлення Git потрібно вказати своє ім'я та адресу електронної пошти, а також налаштувати деякі параметри за промовчанням. Приклад типової початкової конфігурації показано далі.

Поставте репозиторію Git за допомогою команди git config

git --global user.name "John Smith" git config --global user.email [email protected]

Виберіть улюблений текстовий редактор

git config --global core.editor vim

Додайте аліаси за типом SVN

git config --global alias.st status 
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.up rebase
git config --global alias.ci commit

Створиться файл ~ /.gitconfig, описаний у попередньому розділі. Докладніше про команду git config див. на сторінці Git config.

Резюме

Ми показали, як створити репозиторій Git двома способами: git init та git clone. Цим посібником можна користуватися при необхідності керування вихідним кодом або іншим контентом, при зберіганні якого потрібно підтримувати версійність. Крім того, були представлені команди git add, git commit, git push та git remote та показані прості приклади їх використання.

2.1 Основи Git – Створення Git-репозиторію - Mriya.v.ua

Відкрийте головну сторінку GitHub та натисніть зелену кнопку New у меню зліва.

Ви потрапите на сторінку створення репозиторію, де необхідно виконати 4 кроки (кожен крок докладно описаний після скріншота – ознайомтеся з ними, перш ніж завершувати створення репозиторію):

  1. Вкажіть ім'я репозиторію
  2. Виберіть пункт Public
  3. Увімкніть “галочку” Add a README файл
  4. Натисніть зелену кнопку Create repository

Ім'я репозиторію

Є певні обмеження для назви репозиторію: можна використовувати лише латинську розкладку клавіатури (англійські літери), цифри, а також точку “.”, дефіс “-” та рядковий пробіл “_”. Будь-які інші символи будуть проігноровані або замінені на дефіс.

Такі обмеження пов'язані з тим, що ім'я репозиторію буде використано як частину URL, тому GitHub автоматично замінить усі невідповідні символи.

Іноді новачки використовують транслітерацію (російські слова, записані англійськими літерами: mashina, holodilnik) – проте це вважається "поганим тоном" серед досвідчених програмістів. Якщо на початкових етапах це спростить пошук потрібного репозиторію у вашому обліковому записі – можете робити саме таким чином. Але майте на увазі, що більшість документації написана англійською мовою, тому:

Чим раніше ви почнете вивчати англійську мову, тим краще

Найпростіший спосіб іменування репозиторіїв – вказати назву клієнта, проекту, навчального курсу чи компанії, на яку пишеться код.
Так, ім'я devman_courses-python_basics-02 вказує на те, що:

  • репозиторій створено у рамках навчання на Девман
  • модуль Основи Python
  • Урок №2

Мінус такого підходу – назва може бути досить громіздкою і складною. Щоб виправити це, придумайте якісь стандартні скорочення всередині вашого облікового запису GitHub, наприклад: dvmn-py_basics-02 – Коротше, але з тим же змістом

Важливо виробити якусь певну схему, яка використовуватиметься всіх проектах, т.к. це сильно спростити вашу роботу надалі.

Якщо ви бачите червоне оповіщення такого змісту: "The repository [зазначена назва] already exists on this account” – це означає, що така назва вже була використана раніше, тому потрібно вибрати іншу.

Не хвилюйтеся, ім'я має бути унікальним лише серед ваших проектів, а не на всій платформі GitHub, тому проблем з вибором нової назви бути не повинно.

Публічний репозиторій

Виберіть пункт Public – це зробить репозиторій відкритим для всіх, хто має посилання, включаючи ваших передплатників (так, у цьому плані GitHub працює як соціальна мережа).

Уникайте створення приватних репозиторіїв, якщо знаходитесь в Криму або на Нових територіях

На жаль, санкцією за використання приватних репозиторіїв у цих локаціях є повне блокування облікового запису на GitHub без можливості відновлення.

README файл

Включити “галочку” Add a README файл. Завдяки цьому налаштуванню під час створення репозиторію автоматично буде додано файл документації проекту, який завжди відображається на головній сторінці репозиторію. У файлі за замовчуванням буде вказано назву репозиторію. За своєю суттю це звичайний текстовий документ із спеціальним форматуванням Markdown. На даний момент немає необхідності заглиблюватись особливо синтаксису цього файлу, достатньо знати, що в ньому завжди зберігається документація проекту.

Завершуємо створення репозиторію

Створювати файл .gitignore та вибирати ліцензію не обов'язково на початкових етапах навчання. Ви зможете повернутися до них пізніше та додати за необхідності. Натисніть зелену кнопку Create repository — вона завершить створення репозиторію та відкриє у браузері його головну сторінку.

Перевіряємо результат

Ви зробили все правильно, якщо:

  1. бачите мітку Public поруч із назвою репозиторію на вкладці <> Code
  2. бачите поле зі списком файлів та папок з одним файлом README.md
  3. бачите вміст файлу README.md – назва вашого проекту

Якщо поруч із назвою репозиторію стоїть мітка Private (Приватний, Непублічний), інші користувачі не зможуть побачити ваш код.

Якщо під час створення репозиторію не було додано жодного файлу ( README.md , Ліцензія або .gitignore ), то головна сторінка буде виглядати інакше

Однак, ви, як і раніше, можете переконатися, що створення репозиторію пройшло успішно якщо ви бачите

Як знайти репозиторій, якщо вкладку в браузері було закрито

Якщо сторінку репозиторію було закрито, його потрібно шукати у списку проектів, навіщо потрібно виконати кілька кроків:

  • Відкрити головну сторінку GitHub
  • Знайти в меню зліва потрібний репозиторій за назвою
  • Якщо кількість репозиторіїв досить велика, то не всі будуть відображені в цьому списку. Натисніть кнопку “Show more” (Показати більше) або почати вводити назву у рядку пошуку, як на скріншоті нижче.
  • Альтернативний спосіб – відкрити повний список репозиторіїв через меню облікового запису (анімація нижче).

Спробуйте безкоштовні уроки з Python

Отримайте круте код-рев'ю від практикуючих програмістів з розбором помилок та рекомендаціями, на що звернути увагу безкоштовно.

Перейдіть на сторінку навчальних модулів «Девмана» та вибирайте тему.