Розподілені системи контролю версій (DVCS) поступово заміщають собою централізовані. Якщо ви ще не використовуєте одну з них - саме час спробувати.
У статті я постараюся показати, як можна швидко почати експериментувати з git, використовуючи сайт github.com.
Для open-souce проктит використання сайту безкоштовно. При необхідності мати приватні репозиторії, є можливість перейти на платний тарифний план:
Але для початку встановимо git і налаштуємо його для роботи з сайтом.
Якщо ви працюєте в Windows, качаємо і встановлюємо msysgit. Це консольна версія git для Windows (далі розповідь буде вестися на прикладі цієї ОС).
Інструкція для MacOS X (eng)
Інструкція для Linux (eng)
Проблем виникнути не повинно, просто всюди тиснемо Next. Після установки вибираємо в контекстному меню Провідника Git Bash:
або через Git Bash.lnk в папці з встановленою програмою:
До речі, рекомендую пройти непоганий інтерактивний курс по використанню git з консолі. Курс проходиться за кілька годин і дає необхідні базові навички.
Для тих, хто віддає перевагу gui - для Windows існує кілька таких інструментів для роботи з git. Два основних - це SmartGit (багатоплатформовий) і TortoiseGit. Обидва непогані, і який використовувати - справа смаку. Я опишу роботу з TortoiseGit.Для маків вибір giu теж є.
- офіційний клієнт від GitHub - на мій погляд поки досить сируватий.
- GitX - особисто мені не сподобався
- GitBox - найбільш слід mac-way, дуже рекомендую спробувати саме його
GitHub дозволяє працювати з репозиторіями трьома способами: SSH, HTTP і Git Read-Only, відповідно надаючи посилання трьох видів для нашого сховища:
1. [email protected]: habrauser / Hello-world.git
2. habrauser @ github.com / habrauser / Hello-world.git
3. git: //github.com/habrauser/Hello-world.git
Якщо ж ми захочемо внести зміни в репозиторій на github, потрібно користуватися HTTP або SSH.
Робота по http ніяких труднощів не викликає, в потрібний момент просто використовується пароль облікового запису на github.
Для генерації ключів, можна скористатися інструментом ssh-keygen, який йде в комплекті з git (опис цього способу можна почитати тут). Ми ж будемо використовувати PuTTY (а точніше невелику програмку puttygen, що входить до його складу). PuTTY - це такий клієнт для віддаленого доступу, в тому числі і з використанням SSH.
Після установки PuTTY, запускаємо puttygen з папки з встановленою програмою:
Тиснемо Generate, рухаємо деякий час курсором миші, для отримання випадкових даних, необхідних алгоритму
Вводимо пароль, що захищає наш приватний ключ в поле Key passphrase, вводимо підтвердження, тиснемо Save private key, зберігаємо.
тиснемо Add another public Key, вставляємо наш публічний ключ:
натискаємо Add key. Все, тепер ми готові працювати з github по ssh. Спробуємо забрати наш порожній рерозіторій на локальну машину з використанням TortioшseGit. У контекстному меню провідника вибираємо Git Clone ...
Pageant запросить у наc пароль для приватного ключа (потім цього робити не потрібно)
Pageant - це агент SSH-аутентифікації в складі PuTTY, він дозволяє управляти закритими ключами.
В треї висить його значок:
Репозиторій успішно склонірован на локальну машину
Тепер спробуємо змінити локальний репозиторій і відправити зміни на github. Додамо в локальний репозиторій файл README (файл з ім'ям README обробляється github спеціальним чином - його вміст буде відображатися в якості опису сховища на відповідній сторінці)
Закоммітім зміни в локальний репозиторій
і синхронізуємо його з репозиторієм на github:
Тепер зайшовши на сторінку нашого сховища ми побачимо наступне:
Для кожного сховища сайт пропонує wiki:
а також просту систему issue tracking-a:
до речі, для тих, хто використовує в роботі Eclipсe - є відповідний mylyn-коннектор для github:
За посиланням Explore GitHub відкривається каталог репозиторіїв, в якому можна шукати по безлічі інших критеріїв, в тому числі з мов програмування, популярності і т.п.
Резюмуючи хочеться сказати, що якщо ви початківець розробник, який планує почати користуватися системами контролю версій, або ж більш досвідчений і придивлятися до розподілених VCS, але не знає як почати, то є сенс спробувати git, використовуючи такий чудовий інструмент як github.com.