---
# System prepended metadata

title: Использование распределенных систем управления

---

# Использование распределенных систем управления

## Что это

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

В ряд популярных систем попадают следующие
- [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
```


