Розробка програмного забезпечення та кодування переживають справжній бум. Попит на інструменти в цій сфері постійно зростає. Це створило надзвичайно конкурентне середовище, де різні DevOps програми борються за звання найпопулярнішої в своїй категорії. Git є одним з таких інструментів. До цього додайте перехід на віддалену роботу, яка часто потребує комп'ютера, і багато розробників почали розміщувати свої проекти, включаючи Git, на віддалених серверах. Якщо ви в тій же ситуації та хочете розгорнути власний Git сервер, читайте далі.
У цій статті я розповім вам, що таке Git, розберу його переваги та недоліки, а потім покажу, які вимоги вам потрібні, щоб розгорнути власний Git сервер. Поїхали!
Що таке Git?
Git це DevOps програма, яка дозволяє розробникам працювати над своїми проектами максимально ефективно. Головна функція Git - відстежування змін у вихідному коді з часом. Git безкоштовна і відкритого коду та регулярно отримує оновлення. Це робить Git одним із найбільш доступних і надійних DevOps інструментів у світі. На кожному комп'ютері, де встановлен Git, він працює як повнофункціональне сховище з власною історією всіх змін файлів. Після майже 20 років розвитку та понад 30 випущених оновлень Git зараз працює на версії 2.40.0, з подальшими оновленнями в розробці. Тепер давайте розберемося із варіантами використання Git, щоб зрозуміти, навіщо взагалі розгортати власний Git сервер.
Варіанти використання Git
Перш ніж розгортати власний локальний Git сервер, давайте швидко ознайомимося з основними варіантами використання Git, щоб зрозуміти, навіщо взагалі запускати Git сервер.
Клонування репозиторію
Багато розробників віддають перевагу створенню Git репозиторію на сервері для відстежування програм і файлів, які їх цікавлять. За допомогою кількох базових команд Git дозволяє легко скопіювати ваш поточний репозиторій ядра Linux та використовувати його для створення набагато більш узгодженого та ефективного журналу змін тільки цікавлячих вам файлів. Процес простий у виконанні, і ви можете з ним легко керувати невеликими та великими проектами. Цей процес також називається "розгалуження", оскільки по суті ви створюєте нову гілку з уже існуючого репозиторію.
Git Робочий процес
Git Workflow - це ще один важливий варіант використання, який ви застосуватимете після налаштування власного Git сервера. Ви можете використовувати локальний Git сервер для створення двох наборів гілок за допомогою клонування та призначити один з них репрезентативним для вашого проекту, наприклад веб-сайту. Потім ви можете створити Git сервер із окремою production гілкою, де записуватимуться всі зміни від кожного розробника та їх навіть можна тестувати перед впровадженням. Такий багаторівневий підхід до розробки та тестування не тільки підвищує вашу продуктивність, але також робить відстеження процесу розробки та змін надзвичайно простим.
Об'єднання
Пам'ятаєте розгалуження репозиторію та журнал змін? Як випливає з назви, Merging - це повна протилежність цієї операції. При об'єднанні, яке широко вважається найскладнішим аспектом Git, ми намагаємося повернути дані з однієї гілки репозиторію назад у головний репозиторій, з якого вона походила. Це зазвичай робиться для створення Git сервера з комплексним звітом проекту та історією змін, яка включає всі зміни проекту з різних областей в одному узгодженому та легко зрозумілому репозиторії. Якщо під час проекту вам потрібне розгалуження, щоб уникнути плутанини, об'єднання призначене для скасування цієї дії та надання ясної картини на завершальному етапі проекту під час вирішення проблем.
Розгорнути власний Git сервер: переваги та недоліки
Кожна програма має набір критичних переваг та недоліків, які мають знати користувачі, які прагнуть розпочати роботу з цією програмою та використовувати її у своїх проектах. У цьому розділі я обговорю переваги та недоліки, які застосовуються до Git. Однак ці переваги та недоліки стосуються Git тільки якщо ви його самостійно розміщуєте, що є основною темою цього посібника, тому перейдемо до суті.
Самостійно розміщений Git: переваги
Без залучення третіх осіб
З самостійно розміщеним Git тільки ви та люди, з якими ви працюєте, матимете доступ до ваших файлів. Це по суті виключає будь-яке небажане залучення третіх осіб і дозволяє вам спокійно займатися своїм проектом. Ваші дані також будуть набагато безпечнішими, і ви зможете розподілити ресурси на безпеку в інших місцях.
Безпека
Що стосується безпеки, Git можна зробити максимально безпечним через найкращі практики та впровадження сторонніх інструментів. Хоча рівень безпеки дещо знижується при самостійному розміщенні замість використання сервісу, у вас є майже необмежена свобода в тому, наскільки безпечною ви можете зробити власну операцію.
Невмежені репозиторії
Пам'ятаєте клонування та розгалуження? Немає обмежень на кількість репозиторіїв, які ви можете створити за допомогою Git. Це робить його надзвичайно придатним для великих проектів, де кожна гілка розробки потребує власного репозиторію. Це також чудово підходить для проектів з великими файлами, такими як 3D активи, та випадків роботи з Unity.
Самостійно розміщений Git: Недоліки
Висока вимогливість до керування
Git репозиторіями можуть швидко вийти з-під контролю, якщо ви вирішите налаштувати Git сервер на самостійно розміщеній платформі, керування всіма гілками та метаданими може швидко стати нудотою. Тому вам або потрібно бути надзвичайно точним у цьому, або найняти кваліфікованого розробника для цього.
Крута крива навчання
Одне — розмістити Git, зовсім інше — оволодіти ним і запустити власний Git сервер. Git має один з найвищих порогів входження серед всіх систем контролю версій на основі репозиторіїв, і вам потрібно витратити багато часу на його вивчення або передати це завданням кому-небудь іншому.
Без графічного інтерфейсу і підтримки Windows
Хочете встановити Git сервер на Windows? Або планували налаштувати Git сервер з графічним інтерфейсом? На жаль, вас чекає розчарування. Ви обмежені операційними системами з ядром Linux, і графічного інтерфейсу немає. Хочете встановити Git сервер і самостійно його хостити? Доведеться вивчати основи програмування.
Застарілий метод
За будь-якими стандартами, самостійно розміщений Git виглядає застарілим методом порівняно з іншими, більш ефективними способами запуску Git. Яскравим прикладом ефективнішого методу була б робота з GitLab, тому перед тим як вирішувати, чи запускати власний Git сервер, перевірте GitLab також!
Вимоги для встановлення Git сервера
Розглянемо детально, що потрібно для налаштування і розміщення власного Git сервера. Для хостингу Git потрібні лише два компоненти: сервер та встановлення Git, плюс базові знання програмування для налаштування Git сервера.
Git сервер
Щодо сервера, можна використовувати власний комп'ютер, виділені сервери від традиційних провайдерів, або, якщо віддаєте перевагу більш практичному підходу, скористатися хмарний VPS (віртуальним приватним сервером). Маючи VPS, можна безпосередньо керувати сервером і одночасно управляти Git інстансом. Важливо знати, що на сервері повинен бути встановлений дистрибутив Linux для налаштування Git сервера. Cloudzy пропонує широкий вибір Linux VPS послуг з більш ніж 10 надійними дистрибутивами Linux, такими як Ubuntu, Debian, CentOS, Kali та OpenSUSE. Починаючи від $4.95 на місяць, можна отримати надійний Linux сервер поблизу від вас для забезпечення якісного з'єднання і використовувати його для самостійного розміщення та запуску Git сервера!
Отримайте економний або преміум Linux VPS для хостингу сайту чи віддаленого робочого столу за найнижчою ціною. VPS на базі Linux KVM для підвищеної ефективності, потужне залізо та сховище NVMe SSD для максимальної швидкості.
ДокладнішеGit Інстанція
Встановлення Git сервера просто — ми виконаємо його автоматично як частину процесу інсталяції. Як уже згадувалося, Git з відкритим кодом і коштує безкошовно. Це робить Git привабливим для багатьох інших програм контролю версій. Тепер, коли ми маємо всі вимоги, давайте перейдемо до покрокового посібника з встановлення Git сервера на вашому Linux сервері!
Встановлення Git сервера на Linux (Покроковий посібник)
Крок 1: Завантажте та встановіть Git
Ось перший крок у процесі встановлення Git сервера. У терміналі вибраного вами дистрибутива Linux введіть команду для завантаження Git:
Дистрибутиви на основі Ubuntu/Debian:
sudo apt install git
Дистрибутиви на основі Arch:
sudo pacman -S git
Дистрибутиви на основі RHEL:
sudo dnf install git
Ця команда завантажить та встановить Git на ваш Linux сервер. Дочекайтеся завершення процесу.
Крок 2: Зареєструйте та налаштуйте Git сервер
Якщо у вас є локальний сервер на іншому комп'ютері, завантажте його, або, якщо маєте VPS, скористайтеся SSH або RDP для віддаленого доступу до вашого Linux сервера. Тепер налаштуємо Git сервер для віддаленої роботи. Це зробимо, створивши обліковий запис Git такою командою:
ssh username@address
sudo useradd git
Далі введіть команду для переключення на новостворений обліковий запис:
su git
Цей крок виконується насамперед для забезпечення безпеки вашого локального Git сервера. За допомогою цього облікового запису ви будете адміністратором сервера. Можна безпечно організувати майбутніх користувачів у групи з установленими обмеженнями та рівнями доступу.
Крок 3: Створіть директорії SSH та Створіть Git репозиторій на сервері
Наступний крок у процесі встановлення Git сервера — створення окремої директорії SSH для збереження публічні ключі та створити Git-репозиторій на сервері з додатковими шарами безпеки та визначеними рівнями доступу. Почніть з виконання команди:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Після того як ви обмежили доступ іншим користувачам за допомогою цієї команди, введіть наступний рядок, щоб переконатися, що ваші ключі SSH надійно збережені в папці authorized_keys де тільки ви можете отримати до них доступ (виконайте цю команду, тільки якщо у вас НЕ МА id_rsa.pub файл):
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
Нарешті, скопіюйте ваш публічний ключ SSH, щоб налаштувати нове з'єднання SSH з підвищеною безпекою до вашого локального Git-сервера:
cd .ssh
vi authorized_keys
Крок 4: Створення головної папки
На вашому сервері Linux потрібно створити нову папку для збереження всіх репозиторіїв, які Git використовуватиме у ваших майбутніх проєктах. Введіть команду:
mkdir directory_name
Крок 5: Додаємо ваш проєкт!
Ви успішно створили Git-сервер! Процес встановлення Git-сервера завершено успішно, і ви також успішно налаштували Git-сервер. Залишилося лише додати додаткові проєкти командою:
cd parent_directory
mkdir new_project.git
Потім введіть цю команду, щоб додати віддалене сховище на вашу локальну машину:
git init --bare
git remote add origin name git@address:new_project.git
Нарешті виконайте Git push, щоб перевірити, чи все працює як потрібно:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Вітаємо! Ви успішно налаштували хостинг Git та створили Git-репозиторій на сервері.
Часто задавані питання
Чи можна хостити Git без сервера?
Ні. Незалежно від того, який тип сервера у вас є, вам знадобиться обладнання, яке відіграватиме роль сервера. Ви можете використовувати GitHub як云-сервер для своїх репозиторіїв або скористатися нашими VPS пропозиціями або звернутися до іншого сервісу хостингу третьої сторони.
Чи можна встановити Git-сервер з графічним інтерфейсом?
Так. Хоча сам Git не підтримує графічний інтерфейс, існує окремої версія з графічним інтерфейсом під назвою "Git GUI" для тих, хто не може обійтися без GUI.
Чи є платні плани для Git?
Ні. Git був і завжди буде безплатною й відкритою програмою, як визначили її розробники й видавці. Тому ви можете використовувати програму як основу для розробки своїх програм, інакше ж програма є абсолютно безплатною.
Чому варто хостити власний Git-сервер?
Якщо ви планете запустити невеликий проєкт з кількома репозиторіями, власний хостинг набагато приватніший і безпечніший. Це основна причина. Однак коли ви переходите до більших проєктів з більшою кількістю репозиторіїв, власний хостинг стає менш ефективним.