Системы управления версиями Version Control System, VCS

1.

Системы управления
версиями
хранить изменения в облаке бесплатно без смс без регистрации

2.

Управление версиями
Version Control System, VCS — хранение и
контроль слепков проекта в репозитории.
Иначе, хранение истории изменений
проекта в общем контейнере.

3.

Репозиторий
Repository, repo — место хранения файлов
проекта, некоторый цельный контейнер,
где хранятся все версии всех файлов
проекта (условно, общая папка).

4.

Слепок
Snapshot — цельное состояние проекта,
одна из его версий на определенный
момент времени.

5.

Зачем?
Если вы сделали ошибку, можно откатиться на старый код (что-то типа
сохранений или чекпоинтов в играх).
Если вы храните проект на сервере, а не на флешке, он не затеряется; у вас
не будет папок Проект1, Проект1 (новый), Проект1 (последний), Проект1
(точно последний!!!!!!), раскиданных по разным флешкам и компьютерам.
Если несколько человек работает над проектом, доступ к репозиторию и его
обновлению новыми слепками имеет каждый член команды.
Используется не только для кода, но и для любых других файлов, изменения
которых вы хотите отслеживать (особенно электронные документы).

6.

Например, Википедия
Статья в Википедии — последний сделанный слепок. Последний слепок считается
всегда корректным (поэтому вы и видите его в качестве статьи).
История статьи — все сделанные слепки (журнал изменений).
Кто угодно может редактировать любой из слепков и таким образом создать новый.
Любой слепок можно откатить на предыдущий (например, из-за вандализма).
Всё, что относится к статье (все версии, обсуждение) — репозиторий статьи.
Права на работу в репозитории (добавление, откат и т.д.) могут быть только у
отдельных людей, если статья важна для общества.

7.

Простые системы: на своем компьютере и на сервере

8.

Распределенная система
На сервере хранится общий набор версий проекта
(внешний репозиторий), куда пользователь может
отправлять свои слепки и забирать новые (например,
других пользователей)
Локальный репозиторий (компьютер пользователя)
клонирует внешний репозиторий (сервер) — копирует
весь набор версий пользователю
Если сервер упадет, пользователь может дальше работать
с локальным репозиторием, а когда сервер поднимется,
объединить версии

9.

Системы

10.

git
Скачать (на Windows): https://git-scm.com/download/win
Одна из самых популярных VCS — первая версия сделана создателем Linux
Линусом Торвардсом.
В основном работает консольно.
Всё хранит локальными копиями.

11.

Сервисы содержания git (хостинги)

12.

git

13.

Консоль и начало работы
Установить по ссылке раньше
Win+R -> cmd -> Enter
git version:
Если появилась версия, то у вас установился git.

14.

Создаем репозиторий для ваших проектов и качаем мой
Зарегистрироваться на github.com, bitbucket.org или gitlab.com
Создать репозиторий с вашим проектом с лабораторной
Скачать мой репозиторий с помощью git:
https://[email protected]/ptsdfromcoding/testwpf-menu.git

15.

Перемещение по папкам и создание папок
cd (change directory) — перейти в другую папку (например, где создать проект)
mkdir (make directory) — создать новую папку (например, папку для проекта)

16.

Разметка папки под проект на git
git init — создаст настройки. Вы их можете не увидеть, если в настройках Проводника
Windows не включено отображение. Вам их и не надо видеть, они служебные.
В дальнейшем все команды к git будут начинаться с git.

17.

Создать проект (например, в Visual Studio)
Или вы можете просто перекинуть туда ваши
файлы от проекта, git не волнует, как в нем
оказались файлы.

18.

Добавить файлы в git
git add назвфайла.расшфайла —
присоединить файл(-ы) к репозиторию git
(передать в т.н. staging area).
Вместо названия и расширения можно
поставить точку (git add .) — тогда добавятся
все папки и файлы. А если поставить вместо
названия или расширения астериск (git add
*.cs), то добавятся все файлы с оставшейся
буквенной частью.
git status — показывает состояние
репозитория (передаваемые файлы, слепки и
т.д.).

19.

Убрать файл из git
git reset имя.расширение — убирает файл (действуют точка и астериск)
git rm --cached имя.расширение — убирает файл и в дальнейшем
игнорирует для новых версий.

20.

Зафиксировать слепок
git commit -m “описание коммита” — берет
файлы из staging area (которые вы
подготовили до этого с помощью add) и
делает из них слепок на настоящий момент.
-m “текст” — аргумент (доп. команда) message
— некоторое описание, что изменилось в
вашем слепке, для других людей (или себя).

21.

GitHub
https://github.com —
зарегистрироваться.
https://github.com/new — создать
новый репозиторий.

22.

Отправка на сервер
git remote add origin ссылка —
remote работает с внешними
репозиториями; add добавляет в
список доступных репозиториев
новый; origin — его внутреннее
название (стандартное, но можно
поменять); ссылку можно взять на
страничке на GitHub.

23.

Отправка на сервер
git push –u origin master — команда
push отправляет («толкает») на
указанный первым (origin) репозиторий
все слепки, которые были созданы в
ветке на локальном компьютере
(указана второй как master).
Используется только первый раз (чтобы
создать связь). Вам понадобится ввести
пароль и дать доступ git на вашем
компьютере к аккаунту GitHub.
-u указывает на то, что данные будут
передаваться «вверх».
Пуши следующих версий будут
создаваться просто командой git push.

24.

Утащить полностью проект (например, чужой)
git clone ссылка — в папке, где вы
находитесь в консоли (важно!), развернется
проект, который вы клонируете.

25.

Скачать актуальный слепок с сервера
git pull — обновляет вашу локальную
версию последней с удаленного
репозитория (сервера).
English     Русский Правила