# Использование распределенных систем управления ## Что это Под распределенной системой управления понимают программное обеспечение, которое позволяет эффективно версионировать результат работы над программой/библиотекой/рефератом/т.д. В ряд популярных систем попадают следующие - [git](https://git-scm.com/) - [svn](https://tortoisesvn.net/), [классная презентация](https://mipt.ru/drec/about/ilab/upload/47e/f_4vj6ui-arpgiu3b1ja.pdf) - [mercury](https://www.mercurial-scm.org/wiki/HgSubversion) Для ознокомления предлагается использовать git ## Для чего это Система версионирования обладает явными плюсами, которые станут ясны с опытом. Перечислим преимущества в следующем списке: 1. Хранение различных версий состояния проекта - Не надо все сохранять в различных папках при каждом следующем изменении - Легко перейти к состоянию до определенного изменения 2. Удобство совместного доступа и разработки - Ваши изменения может каждый увидеть и притянуть себе 3. Легко вернуться в будущем к разработке уже на новом устройстве ## Как использовать Большинство сред разработки уже *из коробки* поддерживают системы контроля версия. Не составляет трудности найти соответствующие инструкции: - PyCharm: [eng](https://www.jetbrains.com/help/pycharm/2022.2/set-up-a-git-repository.html), [ru](https://russianblogs.com/article/66001065916/) - VSCode: [eng](https://code.visualstudio.com/docs/editor/versioncontrol), [ru](https://docs.microsoft.com/ru-ru/training/modules/introduction-to-github-visual-studio-code/) Разберемся подробно в процессе создания репозитория и контроля версий. 1. Требуется создать аккаунт на [GitHub](https://github.com/). - Для этого вам понадобится рабочая почта - Придумайте никнейм, с которым не будет стыдно работать - На почту должно придти подтверждение аккаунта 2. Залогинтесь и создайте свой первый репозиторий. Название его должно быть схоже с `python_2022` или же `infa_2022`, и т.д. 3. **Кто использует git в консоли**: Создайте token для использования в аудитории. Для этого надо нажать на иконку аккаунта в правом верхнем углу и перейти в `Settings>Developer settings>personal access token`. На появившейся странице создаете токен с правом на чтение и запись (первый большой пункт) и сохраняете его 4. Скопируйте репозиторий на свою рабочую машину (ноутбук, компьютер в классе). Делается это командой `git clone link.to.your.repo.git` 5. В своем репозитории создайте директорию (папку) второго занятия `classwork02`. Поместите туда ноутбук и задачи прошлого занятия. - Название ноутбука оставьте оригинальным - Задачи назовите `A.py`, `B.py`, `C.py` 6. Затем вам нужно ввести в систему версионирования свое ФИ и почту. Делается это командами `git config --global user.name "Your Name"`, `git config --global user.email "mail@example.com"` 7. После этого добавляем файлы в систему git с помощью команды `git add classwork02` 8. Фиксируем изменения с помощью команды `git commit -m "Short message"`. `"Short message"` -- описание ваших изменений. Оно должно кратко передавать суть вашего коммита 9. И *пушим* изменения в удаленный репозиторий `git push`. В качестве username может быть запрошено имя вашего аккаунта или же почта. В качестве пороля используйте токен из третьего пункта Список команд для первой настройки ```bash= git clone link.to.your.repo.git git config --global user.name "Your Name" git config --global user.email "mail@example.com" git add classwork02 git push ``` При повседневном использовании вам пригодятся следующие команды ```bash= git add path/to/your/file git commit -m "Short message" git push ```