GitHub для користувачів Windows


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

Деякі розробники можуть накоїти в проекті стільки всього, що самі в шоці. А згадати, що і де робилося, важко. Та ще неприємність.

Система контролю версій допоможе вам уникнути цих проблем. У разі необхідності можна зробити відновлення або відкат змін. Переглянути і підтвердити або скасувати правки. Ну а командна робота без системи контролю версій просто немислима.

Якщо ви раптом не знайомі, то я хочу познайомити вас з системою керування версіями по імені Git. Під катом вас чекає опис того, як використовувати GitHub разом з Visual Studio.

Актуальне розширення називається GitHub Extension for Visual Studio. Воно підходить для Visual Studio 2015 і вище. Скачати vsix можна з github сторінки або Visual Studio gallery.

Встановити розширення можна і при установці Visual Studio:


Перед тим як продовжити, потрібно вивчити трохи термінів. Якщо ви їх знаєте, то розтратив вниз.

Push – відправка змін з локального репозиторія в репозиторій GitHub.

Fetch – отримання змін з віддаленого сховища для порівняння і можливого подальшого злиття.

Merge – злиття. Застосування змін скоєних в іншому репозиторії поточним репозиторієм. Щось на кшталт об'єднання двох репозиторіїв.

Pull – комбінація fetching і merging. Спершу з віддаленого сховища виходить список змін, а потім зміни застосовуються до поточного дерева.

Тобто, якщо хтось крім вас попрацював і здійснив зміни у репозиторії GitHub, то ви можете послідовно здійснити 2 дії: Fetch, а потім Merge. Або ж ви можете відразу виконати Pull. Після цього у вашому локальному сховищі відображаються здійснені зміни.

Після установки GitHub Extension for Visual Studio, панель Team Explorer буде виглядати так:


Якщо панель Team Explorer прихована, то відобразити її можна через меню «View» / «Вид». Підключившись до GitHub (натиснувши Connect… і ввівши логін з паролем) отримаємо можливість скопіювати репозиторій GitHub, або створити новий кнопочки Clone і Create):


При клонуванні буде виведений список репозиторіїв до яких у вас є доступ:


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


В даному випадку Git ignore містить налаштування для проектів різного типу. А так цей файлик формату .gitignore призначений для того, щоб вказати в ньому директорії і файли потрібно виключити з системи управління версіями.

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

Для студентів GitHub пропонує спеціальну пропозицію — Student Developer Pack, яка зокрема включає в себе безкоштовне необмежену кількість приватних репозиторіїв.

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


Якщо цю галочку при створенні проекту не поставити, а просто відкрити проект в VS, то в меню Файл стане доступний пункт «Add to Source Control» / «Додати в систему керування версіями»


Після його натискання, проект буде доданий в систему керування версіями Git, і всередині папки з проектом буде створена локальна папка .git. У Team Explorer це буде виглядати так:


Переключившись між Team Explorer і Solution Explorer можемо зробити якісь зміни в проекті. Після будь-яких змін можна здійснити отримати своєрідну точку відновлення. Для цього повернемося в Team Explorer, в меню якого є кнопка з намальованим на ній будиночком. Натискання на неї приведе вас в головне меню:


Кнопка «Changes» / «Зміни» дозволить зафіксувати зміни (при цьому обов'язково необхідно вказати коментар з описом змін). Але всі дії поки що будуть здійснені тільки з локальним сховищем git.

При створенні проекту іноді створюється так званий «Initial commit», в якому пишеться щось на кшталт «Проект був створений за три дні». Якщо ви тільки що створили проект, то змін у ньому поки що ще немає. А якщо змін немає, то отримати створити не вийде. Я додавав рядок з текстом, тому у коментарі постарався описати це коротко, але зрозуміло:


Можна переглянути зроблені зміни. Для цього на цікавлячий нас файлі потрібно викликати контекстне меню та вибрати «Compare with Unmodified...» / «Порівняти з незміненою...»


Отримаємо приблизно ось таке порівняння:


В даному випадку було додано лише 2 рядки коду. Через те ж саме контекстне меню всі зміни, що відбулися з часу останнього коміта можна скасувати. Дуже зручна фіча.

Тепер, давайте, знову перейдемо в головне меню, натиснувши будиночок. Для того щоб відправити зміни на GitHub необхідно натиснути кнопку «Sync» / «Синхронізація».


Так як наш проект ще не був опублікований на GitHub, то нам запропонують це зробити:


До речі, .git цілком можна опублікувати не тільки на GitHub, але і на Visual Studio Team Services.

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


Натискання Push призведе до відправки змін в репозиторій, розташований на сервері GitHub.

Зробивши для проби деякі зміни прямо через браузер в репозиторії, розташованому на GitHub (так, так теж можна), я знову зайшов у синхронізацію і натиснув Fetch:


Тут подвійним кліком можна відкрити інформацію про коммите:


І якшо вже на файл переглянути зміни:


У тому ж самому вікні синхронізації можна переглянути історію:


Історію можна переглядати в простому поданні і в докладному:



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


Клікнувши на Conflicts отримаємо ось таке віконце в якому після кліка на файлі відкриється меню з кнопкою Merge:


Тепер ми може ставлячи галочки вибрати зміни, які ми хочемо залишити в остаточній версії. Остаточна версія на наступному скріншоті відображена внизу. Код в ній теж можна правити:


Після внесення зміни потрібно натиснути Accept Merge (у верхньому лівому кутку), після чого зробити комміт:


Сторінка самого розширення на GitHub: github.com/github/visualstudio

Github Desktop і PowerShell environment for Git

Github Desktop — утиліта цілком незалежна і з Visual Studio ніяк не пов'язана. Скачати можна тут.


Утиліта доступна для користувачів Mac і Windows. Разом з нею встановлюється командний рядок Git Shell. Фактично це PowerShell з набором скриптів для інтеграції з Git. Називається PowerShell environment for Git. Скорочено posh-git.

На GitHub сторінці проекту posh-git можна знайти коротку інструкцію про те, як встановити командний рядок posh для git вручну.

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

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

git config –list

Для того щоб скопіювати репозиторій досить виконати команду git clone. Наприклад:

git clone https://github.com/programmersommer/Barcode_Scanner_UWP.git BarcodeScanner

Після виконання цієї команди, в поточній директорії з'явиться папка з проектом. Крім http:// або https:// підтримуються і SSH і git://. Якщо перейти в папку з проектом за допомогою команди cd (у разі прикладу cd BarcodeScanner), то командний рядок зміниться:


Рядок статусу PowerShell відобразить текст posh~git, що означає, що ви потрапили в середу PowerShell для Git. Можна виконати команду git status, щоб дізнатися, чи не потрібно синхронізувати локальний репозиторій. Відповідь може бути таким:


Найпопулярніші команди це ті, які ми вже розглядали в рамках інтерфейсу розширення VS: git fetch, git merge, git push. Якщо ви зайдете в директорію (найменування PortableGit_xxx директорії, я так вважаю, може бути дещо іншим):

C:\Users\{user_name}\AppData\Local\GitHub\PortableGit_284a859b0e6deba86edc624fef1e4db2aa8241a9\usr\bin

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

Наприклад, якщо у директорії проекту з'явиться новий файл, то команда git status видасть:


А значить додати файл командою git add index.html. Тепер зміни потрібно підтвердити за допомогою git commit. Ця команда відкриє текстовий редактор, який встановлений за замовчуванням. У ньому необхідно в першу рядок ввести текст, який описує зроблені зміни. Якщо почати рядок з символу #, то це буде коментар. Коментарі можна залишити в рядках нижче. Якщо не залишити жодного тексту з описом коміта, то комміт не відбудеться. Можна вказати текст коміта відразу в командної рядку за допомогою параметра –m. Наприклад: git commit –m «File index.html added»


Тепер можна з допомогою git push відправити зміни в GitHub репозиторій. Якщо це ваш репозиторій. Чужий репозиторій ви можете скопіювати до себе, створивши так звану гілку — Fork. Зробивши якісь зміни ви можете запропонувати автору оригінального репозиторію створивши pull request.

На цьому дозвольте завершити опис можливостей роботи з GitHub для користувачів Windows. Якщо хочете продовжити вивчення, то на MVA ви можете подивитися курс GitHub for Windows Users
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.