Git Майстерність: Поняття віддалених та відслідковуваних гілок

Git Майстерність: Поняття віддалених та відслідковуваних гілок

04.12.2023
Автор: HostZealot Team
2 мін.
76

Дослідження віддалених гілок

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

Віддалені гілки допомагають користувачам конкретного проекту співпрацювати. Ці гілки розміщуються на GitHub, який частіше називають вихідним репозиторієм. Коли користувач вносить деякі локальні зміни, він може перемістити створену локальну гілку до основного або віддаленого сховища. Роблячи це, ви дозволяєте іншим користувачам отримати доступ до цього коду.

Отже, віддалені гілки є копіями локальних гілок у віддалених сховищах.

Створення нового локального сховища

Для практичного розуміння того, як все працює насправді, давайте створимо локальний репозиторій. Для цього почніть зі створення нового каталогу і вставте в нього кілька файлів, після чого виконайте $ git init. Тепер ви можете ідентифікувати ці конкретні файли як невідстежувані, для перевірки цього можна виконати команду - $ git status. Для додавання будь-яких інших файлів ви можете набрати - $ git commit -m. Локальне сховище з кількома файлами успішно створено, тож перейдемо до віддаленого сховища.    

Створення нового віддаленого сховища

Для створення віддаленого сховища спочатку слід вибрати потрібний сервіс. Найпопулярнішими варіантами є Bitbucket та GitHub. Після того, як ви вибрали сервіс і все налаштували, можна переходити до наступних кроків.

Завантаження змін до віддаленого сховища

Після налаштування віддаленого сховища вам потрібно буде вставити посилання на нього в локальне сховище. Для цього потрібно ввести

$ git remote add something [remote-url]

Як бачите, ми назвали цей віддалений репозиторій something, але це може бути будь-яке інше слово, яке вам подобається. Щоб перевірити, чи все було підключено успішно, скористайтеся командою

$ git remote

Щоб отримати більш детальну інформацію про віддалений репозиторій, вам потрібно додати -v до команди, про яку йшлося вище.  

Наступним кроком буде проштовхнутися до віддаленого сховища за допомогою наступної команди:

$ git push something master

При введенні цієї команди у віддаленому сховищі буде створено головну гілку, а у локальному - посилання на неї. Якщо ви робите пуш до віддаленого сховища, але не створили гілку, це буде зроблено автоматично. Автоматично згенерована назва містить наступну інформацію remotes/remote-name/branch-name, у нашій ситуації це remotes/something/master.

Перевірка віддалених гілок

Щоб перевірити всі віддалені гілки, ви можете виконати $ git branch -r. Щоб переглянути всі існуючі гілки, включаючи локальні та віддалені, слід виконати

$ git branch -a

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

Перехід до віддалених гілок

Перехід до віддалених гілок дуже простий, просто введіть

$ git checkout origin/master

Як бачите, немає необхідності вставляти remotes/ в цей рядок. Зручність полягає в тому, що це локальна операція, яка можлива завдяки точній копії віддаленої гілки master.

Оновлення віддалених гілок

Для надсилання локальних змін до віддаленого сховища введіть наступну команду:

$ git push

Настійно рекомендується почати з $ git fetch перед виконанням команди push. Якщо ви створили нову гілку, вам не потрібно починати з fetch. Оскільки цієї гілки не було у віддаленому сховищі, то немає з чого вибирати.

Для синхронізації вам слід набрати наступну команду:

$ git fetch [ім'я віддаленого сховища].

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

Необхідність виконання команди 'Fetch' перед 'Push'

Команда 'Fetch' повинна бути виконана до того, як виштовхувати нові зміни у віддалене сховище. Це дуже важлива річ, про яку слід пам'ятати перед будь-якими коригуваннями, які ви плануєте. Якщо інший користувач виштовхнув щось до віддаленого сховища, необхідно "витягти" зміни, а потім "злити" ці модифікації в локальні гілки. Тільки після цього можна починати "штовхати" свої модифікації. Користувачі практично не можуть нічого "проштовхувати", доки не буде оновлено локальну гілку.

Процес вибірки однаково необхідний як для головної гілки, так і для будь-яких інших гілок. Пам'ятайте, якщо ви не плануєте вносити конкретні зміни у гілку, ви можете не оновлювати її. Ці оновлення важливі тільки в тому випадку, якщо ви ініціюєте зміни.

Симуляція роботи члена команди

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

$ git clone [remote-url]

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

$ git add
$ git commit -m
$ git push something master

Створення відслідковуваних гілок

Відслідковувані гілки - це тип локальних гілок, які безпосередньо пов'язані з віддаленими гілками. Користь цих відслідковуваних гілок полягає в автоматичному визначенні гілки і сервера, які слід використовувати для штовхання.

Цей тип гілки схожий на інші, але містить специфічні дані для відстеження.

Звичайний сценарій git push виглядає наступним чином: $ git push something master. Це означає, що віддалене сховище, яке називається something, і гілка, яка називається master, отримують оновлення. Якщо така гілка вже створена у віддаленому репозиторії, то все працює бездоганно, а якщо ні, то падає. Щоб спростити цей процес, ми можемо використовувати відслідковуючі гілки.

Створення нових гілок відслідковування

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

$ git push -u something master

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

Після запуску цієї команди процес значно спрощується. Ви просто друкуєте $ git push або pull і робите все, що завгодно, без необхідності додавати назву гілки та ім'я віддаленого сховища кожного разу, коли хочете щось витягнути або перенести. Командний рядок для pull виглядає так само:

$ git pull

Створення нової гілки також є дуже простим: ви просто додаєте -u до рядка, і він виглядає наступним чином:

$ git push -u remote-name branch-name

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

Додаткові переваги використання відслідковуваних гілок

Відслідковувані гілки дуже корисні для штовхання і витягування при вокористанні скорочених команд. Крім того, користувачі можуть легко визначити, чи відстають вони від віддаленої гілки, чи випереджають її. Щоб перевірити цю інформацію, скористайтеся наступною командою:

$ git status

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

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

Автоматичне отримання відслідковувальної гілки при клонуванні

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

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

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

Наприклад, член команди клонував репозиторій з деякими гілками. Проблема в тому, що система автоматично створює лише віддалені гілки та локальну головну гілку. Інші локальні гілки користувач має створювати самостійно, але як це зробити? Коли користувачеві потрібен локальний доступ до певної гілки, її слід клонувати з віддаленої в локальну. Ще одним важливим моментом є додавання механізму відстеження до цієї клонованої гілки. Це звучить як 2 складних завдання, але насправді це всього лише один рядок:

$ git checkout -b [локальна-назва-гілки] [віддалена-назва-гілки]

На виході ви побачите повідомлення про те, що обрана гілка налаштована на відстеження віддаленої гілки.

Заключення щодо освоєння Git

Тепер ви маєте базове уявлення про віддалені та відслідковувані гілки, а також про те, як ініціювати локальне сховище, знаєте декілька корисних команд, таких як pull, push, clone, fetch та декілька інших. Вся ця інформація може бути трохи заплутаною для нових користувачів, і це очевидно. Будь-яка нова технологія - це непроста річ, яка вимагає не тільки базових знань, але й величезної практики. Тільки практикуючись, ви зможете стати більш досвідченими в роботі з Git і величезним списком команд, про які ви дізнаєтесь. Велика рекомендація для будь-якого новачка - попрактикуйтеся з командами, гілками, створіть пару репозиторіїв і все стане більш зрозумілим.

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

FAQ

Що таке концепція відстеження зв'язків у Git?

Відстеження зв'язків або відслідковувані гілки створені як чудова концепція для автоматизації декількох процесів в Git. Ця гілка з'єднує локальну гілку з віддаленою, щоб було простіше робити push/pull. Гілка, що відстежує, автоматично знає, яку гілку і сервер вибрати для штовхання і витягування, і вам не потрібно вводити все вручну.  

Яке значення має встановлення зв'язків відстеження?

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

Яка процедура моніторингу віддаленої гілки?

Процедура моніторингу віддаленої гілки важлива для спільної роботи з користувачами над одним проектом. Такі інструменти, як Git, спочатку були створені для того, щоб налагодити хорошу співпрацю і допомогти програмістам відстежувати всі доступні зміни в проекті. Всі різні функції та версії можна легко відстежувати лише за допомогою декількох команд, про які варто знати. Наприклад, для створення/видалення/переліку гілок можна використовувати команду git branch. Git fetch застосовується для отримання посилань з віддаленого репозиторію і збереження їх на локальному. Ще одна корисна команда для переміщення між функціями в одному репозиторії - git checkout.

# Як зробити Поділитися:
Статті за темою