- Налаштування приватних Git-серверів у Windows за допомогою Git Daemon та віртуальних мереж, таких як Hamachi.
- Впровадження професійних робочих процесів шляхом відокремлення виробничої (головної) гілки від гілок розробки.
- Безпечне керування автентифікацією за допомогою SSH-ключів та персональних токенів доступу (PAT) для віддалених середовищ.
- Налаштування глобальних параметрів у Git для уникнення конфліктів розривів рядків між операційними системами Windows та Unix.
Я впевнений, що з вами таке траплялося: у вас є кілька комп’ютерів вдома чи в офісі, і ви хочете, щоб ваш код синхронізувався, не покладаючись обов’язково на зовнішні хмарні сервіси. Хоча сьогодні всі користуються GitHub, бувають ситуації, коли ви віддаєте перевагу налаштуванню власного приватного Git-сервера , щоб мати повний контроль над своїми файлами та не дозволяти третім сторонам зберігати вашу інтелектуальну власність.
Налаштування цього у Windows може здатися головним болем, особливо коли ви стикаєтеся з мережевими стінами або помилками підключення, які не мають сенсу. Але не хвилюйтеся, ми крок за кроком розберемо, як підключити ваші машини, незалежно від того, чи використовуєте ви віртуальні мережі, такі як Hamachi , хмарні сервери Linux чи класичне налаштування SSH, щоб усе працювало безперебійно.
Налаштування власного Git-сервера у Windows з віртуальною мережею

Якщо у вас два ПК з Windows 11 і ви хочете, щоб перший з них працював сервером, найшвидший спосіб, коли вони не знаходяться в одній локальній мережі, – це використовувати Hamachi. Щоб це спрацювало, спочатку потрібно встановити Git і Hamachi на обидва комп’ютери. Хитрощі тут не в тому, щоб намагатися скопіювати дані до звичайної папки, а в тому, щоб налаштувати не голий репозиторій або скористатися інструментом Git Daemon.
Щоб розпочати, створіть папку для вашого проєкту (наприклад, C:\Repos\Test.git) та запустіть git initДля цього важливо додати хоча б один файл, наприклад, .gitignore. git add . та виконайте перший коміт. Щоб дозволити іншому комп’ютеру підключитися, потрібно активувати сервер за допомогою команди git daemon --export-all --base-path=. --reuseaddr --verboseНа стороні клієнта, щоб уникнути проблем з дозволами, рекомендується запускати git config --global sendpack.sideband false перед запуском клоновано за допомогою IP-адреси від Hamachi.
Управління філіями та професійний робочий процес

Дуже поширеною помилкою на початку є перенесення всіх змін безпосередньо до гілки master. Це не рекомендується, оскільки гілка master має бути вашим робочим середовищем , тобто там, де знаходиться лише робочий код, готовий до розгортання. В ідеалі, вам слід створити гілку з назвою default або develop для виконання важкої роботи.
Логічним робочим процесом було б створити коміти в підгілці, відправити зміни та зберегти всі зміни в Git , а потім, після того, як ви перевірили, що все працює правильно, виконати злиття з master . Таким чином, ви збережете чисту історію та запобіжите дурній помилці, яка може зламати стабільну версію вашої програми.
Розширені альтернативи: хмарні сервери та протоколи

Якщо ви шукаєте щось надійніше, ніж домашній ПК, налаштування сервера Linux (Ubuntu або CentOS) – найкращий варіант. Тут ви можете встановити Git за допомогою apt-get install git o yum install git-coreУ цих середовищах ключовим протоколом є SSH (безпечна оболонка)оскільки він пропонує потужне шифрування та дозволяє керувати доступом без розкриття паролів у звичайному тексті.
Щоб перенести локальний проект на віддалений сервер такого типу, найпростішим підходом є створення "голої" копії (без робочих файлів, лише з базою даних Git) за допомогою git clone --bare а потім завантажте його на сервер за допомогою команди scpЦе перетворює ваш сервер на центральний вузол синхронізації де всі розробники команди можуть тягнути та просувати.
Основна конфігурація середовища Git

Перш ніж почати безладно використовувати команди, вам потрібно правильно налаштувати своє середовище. Git має знати, хто ви, щоб підписувати коміти; якщо ви його не налаштуєте... user.name y user.emailСистема видасть вам помилки або призначить загальні назви. Ви можете застосувати ці зміни глобально, щоб вплинути на всі ваші проекти, або локально, якщо хочете використовувати різні ідентифікаційні дані залежно від репозиторію.
Ще одним критичним моментом у Windows є обробка розривів рядків. Windows використовує CR+LF, тоді як Linux та macOS використовують лише LF. Щоб Git не позначав файли як змінені виключно на основі форматування, потрібно виконати команду git config --global core.autocrlf true у Windows. Ви також можете налаштувати свій текстовий редактор за замовчуванням (наприклад, Visual Studio Code або Sublime Text), щоб зробити операції з перебазування або редагування повідомлень набагато зручнішими.
Підключення до GitHub: SSH проти PAT-токенів
Якщо ви зрештою вирішите використовувати GitHub, у вас є два способи автентифікації. Перший – SSH, який передбачає генерацію пари ключів (публічного та приватного). Публічний ключ завантажується на GitHub, а закритий ключ залишається на вашому комп’ютері. Це найзручніший варіант, оскільки він усуває необхідність вводити пароль при кожному натисканні, за умови, що у вас запущено ssh-агент.
Другий варіант – це персональні токени доступу (PAT). Вони ідеально підходять, якщо ви працюєте з багатьма різними машинами або в середовищах безперервної інтеграції. Коли ви генеруєте токен у налаштуваннях розробника GitHub, він діє як тимчасовий пароль із певними дозволами , додаючи додатковий рівень безпеки, оскільки ви можете відкликати токен у будь-який час, не змінюючи свій основний пароль.
Опанування дистанційного керування та вирішення конфліктів
Керування кількома віддаленими серверами легко, якщо ви розумієте команду git remote addЗа замовчуванням головний сервер називається "origin", але ви можете додати скільки завгодно віддалених серверів. Якщо ви помилитеся в URL-адресі або зміните протоколи (наприклад, з HTTPS на SSH), вам не потрібно видаляти віддалений сервер; просто скористайтеся git remote set-url origin .
Якщо виявиться, що пульт вже існує, ви можете перейменувати його за допомогою git remote rename або повністю усунути його за допомогою git remote rm. Пам'ятайте, що Видалення віддаленого підключення не стирає дані На сервері це просто розриває зв'язок між вашою локальною папкою та зовнішнім сервером, дозволяючи вам повторно підключитися до іншого місця призначення без втрати історії комітів.
Опанування взаємозв'язку репозиторіїв включає розуміння всього: від базової конфігурації ідентифікації та розривів рядків до розгортання приватних серверів за допомогою Git Daemon у віртуальних мережах та захисту SSH-ключів у хмарі. Незалежно від того, чи ви оберете локальний робочий процес з Hamachi, чи професійну інфраструктуру на GitHub, ключ полягає в правильному управлінні гілками для захисту стабільної версії та використанні відповідних протоколів автентифікації для забезпечення безпеки коду.

