Cистемы контроля версий и Github
- Устанавливаем GIT
- Проверяем что git установился успешно
- Подключаем visual studio проект к git
- Регистрируемся на github
- Создаем проект на github
- Как жить дальше

Системы контроля версий (на языке потенциального противника Version Control System или очень часто встречающиеся сокращение VCS), позволяют контролировать изменения в файлах, фиксировать состояния программы (аналог создания папки), и в случае необходимости откатываться, более того в любой момент можно глянуть посмотреть, как оно было раньше. Ну и не менее если даже не более важно, это то, что vcs позволяет организовать безболезненную работу над проектом сразу нескольких человек.
Надо понимать, что vcs в первую очередь сделаны для отслеживания изменения в текстовых файлах (код программ полностью попадает в эту категорию, то что он, например, хранится в MainWindows.cs, не делает этот файл чем-то особенными, это все еще просто файл с текстом). Отслеживание идет на уровне строк.
Как следствие использовать контроль версий для docx файла так же эффективно, как и для текстовых файлов не получится. Так как docx-файл представляет собой бинарные данные, то любое изменение в файле будет восприниматься системой, как полное изменение файла. При наличии некоторого навыка это все равно удобнее чем создавать копии документа на каждый чих. Говорят, у фотошоперов есть свои системы контроля версия специально под psd форматы, но то мне не ведомо.
Сама по себе vcs представляет собой консольное приложение, которое необходимо поставить себе на компьютер и добавить в PATH (делается обычно прям при установке).
Самая популярная система это git

есть еще достаточно распространенный mercurial

и все еще живой Subversion (или сокращено SVN)

SVN предлагает немного другой подход к организации версирования, но в целом проиграл технологическую гонку с git и mercurial. Так же стоит знать, что, если вы вдруг будете искать работу и там будут требовать знание SVN бегите от этой вакансии как от огня, с вероятностью 95% там будет код на древних технологиях, и скорее всего недостаточно компетентные коллеги.
Устанавливаем GIT
Мы будет работать с git. Поэтому будет его и ставить
Идем сюда: https://git-scm.com
и качаем:

устанавливаем:


ставим галки:

далее

потом нам предлагают редактор по умолчанию (нам скорее всего не принципиально):

но по умолчанию там стоит vim, это очень своеобразный текстовый редактор, уже десятилетиями поднимается вопрос как выйти из vim https://tproger.ru/news/how-to-exit-damned-vim/, так что наверное имеет смысл поставить какой-то другой. Я, например, люблю sublime, но чет он у меня в списке не выбирался, поэтому я указал путь к нему явно:

если что-то не будет работать, это всегда можно будет поменять. Далее ничего не меняем:





и ждем

ок:

Проверяем что git установился успешно
Жмем Win+R

вводим cmd и жмем Выполнить, откроется консолька, введем в ней
git --version
должны увидеть что-то в этом роде

Если все так значит вы успешно установили git.
Кстати, чтобы не возвращаться к этому моменту, потому что я не помню в какой момент это может помешать, запустите консольку и пропишите сразу настройки гита
git config --global user.name "your_username"
git config --global user.email "email@yandex.ru"
ну и понятно, в your_username укажите, свое именование и свою почту.
Подключаем visual studio проект к git
Дело не хитрое, открываем проект, и кликаем сюда:

собственно, и все, можно сходить в папку с проектом:

- папка .git – тут собственно будет хранится отслеживаемые изменения и всякая о метаинформации, обычно нет необходимости лазить в эту папку
- .gitignore – тут указывается какие файлы не надо включать в отслеживание версий, например обычно не включают *.exe файлы, иногда имеет смысл в нем что-то поправить
- .gitattributes – всякие специфичные настройки для файлов, например можно явно отметить какой-нибудь файл как бинарный, и система контроля версия перестанет его отслеживать
вернемся в студию, посмотрим в обозреватель решения:

теперь если в каком-нибудь файле чего-нибудь поменять, я, например, решил подправить MainWindow.xaml.cs

можно нажать правой кнопкой на файл, и узнать, что именно изменилось:

у меня какая-та старая версия проекта открылась, но суть не меняется, слева то, что было, справа – то что стало:

чего-нибудь еще поменяв, допустим:

ну и собственно самое важное, фиксирование изменений. То есть устанавливаем точку от которой будут отсчитываться последующие изменения. Делается это очень просто.
Кликаем правой кнопкой на любой файл и выбираем зафиксировать:

видим открылась странная вкладка

пишем, например:
Убрал старый код, поправил комментарии
и фиксируем:

появится что-то вроде:

что будет свидетельствовать что все ок.
Внизу появится сообщение:

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

Можно сходить посмотреть историю изменений каждого файла:

любую версию можно открыть и изучить что же там было.

Кстати этот Добавьте файлы проекта. – это первая фиксированная версия, которую студия создала на автомате когда мы нажали кнопку Добавить в систему управления версиями. Ну и судя по всему это «надмозг» перевод фразы с инглиша на русский Add project files. Короче они там тоже не очень по нашему =)
Регистрируемся на github
Github – крупнейший сервис для хранения проектов для разработчиков. Наличие активного аккаунта на нем +100 баллов при прохождении собеседования на программиста. Потому что
- раз – значит, что вы умеете в git
- два – вы увлечены программированием
- три – можно сразу посмотреть как вы пишите код [хотя может оно лучше и не надо >_>]
если же вы очень-очень стесняетесь своего кода, то можно делать приватные репозитории
Короче регистрируемся https://github.com, сначала важно выбрать себе имя.

для моих тестовых целей, все были уже заняты >_>
короче разобравшись с именем, попадем сюда, надо нажать кнопку Verify

поставить лошадку на ноги

и нажать Done, затем выбрать бесплатный план и нажать Continue

потом чего-нибудь ответить:

Отлично все сделано!
Создаем проект на github
Идем на главную страницу, которая будет выглядеть как-то так и жмем на ней кнопку New Repository (всякий git-проект принято называть репозиторий)

да елки-палки

идем на почту и подтверждаем:

ок, теперь нас снова сюда отправили

снова жмем New Repository, и снова придумываем имя (╯°□°)╯︵ ┻━┻ Так как проект у нас по сути уже есть остальные галки не трогаем, по желанию можно заполнить поле Description

короче нажав Create repository, попадаем сюда:

Это абсолютно пустой репозиторий, тут описано чего-надо сделать на своем компьютере чтобы связать локальную и сетевую версию.
копируем уникальный адрес нашего репозитория

идем в студию, переключаемся на вкладку Team Explorer и тыкаем по инструкции

открываем узел Отправить в удаленный репозиторий и тыкаем Опубликовать репозиторий Git:

жмем опубликовать

откроется окошко:

вводим свои данные, тыкаем Login и ждем.
Сигналом что все завершилось успешно, будет 0 в строке статуса:

теперь можно сходить на github.com, выбрать свой проект:

и полюбоваться его содержимым

Как жить дальше
Теперь когда вы развернули проект, надо запомнить процесс разработки с системой контроля версий:
1. Вы делаете изменения в коде, затем фиксируете их

2. Затем вы вводите сообщение об изменениях, которые вы хотите зафиксировать

3. Вы отправляете изменения на github, нажимая синхронизировать
сначала тут

а потом тут:

либо попадая на эту же страницу, так:

Собственно так и жить. Только теперь вам не страшно что-то сломать, нет необходимости копировать папки, и вы можете отслеживать динамику изменения своего кода.