- поговорим о том, как правильно хранить свои исходники
- что такое VCS, и какие они бывают
- почему GIT и с чем его есть?
- создадим первый репозиторий
- завалимся в репозиторий Лямбды
Три самые популярные платформы VCS:
- SVN
- Mercurial
- Git
- централизованная открытая VCS
svnserve
- серверная часть, в которой хранятся исходникиsvn
- клиентская часть, в которой программисты трудятся над кодом- когда код готов, он отправляется на серверную часть, где сливается с предшествующей версией
- децентрализованая VCS
- хранит данные об изменении каждого файла
- децентрализованная VCS
- хранит общие изменения всего репозитория
- гибкая система ветвления
- возможность сохранять изменения без доступа к интернету
- каждый программист клонирует не копию, а полноценную версию репозитория
- самое популярное решение для open-source проектов
- сколько угодно открытых репозиториев
- приватные репозитории - по подписке
- объединение в организации (@lambdafrela)
- интеграция с множеством сторонних сервисов - Slack, Trello, Travis CI, etc.
- поддержка GIT, SVN, Hg и TFS
- сколько угодно открытых репозиториев
- сколько угодно приватных репозиториев
- объединение в организации
- гибкая настройка прав доступа
- собственный сервис continous integration
- можно запускать на своем сервере
- сколько угодно открытых репозиториев
- сколько угодно приватных репозиториев
- объединение в организации
- собственные клиенты на ПК и Android
- интеграция с enterprise-сервисами Atlassian - Jira, etc.
Дадим системе понять, кто мы такие:
git config --global user.name "John Doe"
git config --global user.email foo@citrix.com
- создадим папку с нашим будущим проектом
mkdir myfirstrepo
- зайдем в папку
cd myfirstrepo
- инициализируем репозиторий
git init
любой git-репозиторий состоит из трех "деревьев", в которых хранятся изменения:
working directory
- рабочая папка, в которой содержатся файлы в отредактированном видеIndex
- выступает в роли "временного фиксатора"HEAD
- файлы находятся в состоянии последнего сделанного коммита
git status
git add .
git commit -m "my first commit"
поступим, как нам советуют на Github, в случае, если репозиторий уже существует:
- добавим remote по имени origin, т.е. путь к серверу, на котором будет храниться код
git remote add origin https://github.com/murych/myfirstproject.git
- зальем наш код в remote в ветку master
git push -u origin master
- введем логин и пароль
А теперь - немного практики! Найдем репозиторий нашего сообщества, сохраним себе, и даже внесем небольшой вклад в общее дело!
- заходим на Github и ищем пользователя
lambdafrela
- выбираем репозиторий
myfirstproject
и создадем форк репозитория, т.е. вашу личную его копию, над которой вы имеете полную власть
- склонируем репозиторий на свой компьютер
git clone https://github.com/murych/myfirstproject.git
- создадим файл под названием
ваше_имя.txt
, в который запишем ваш email
- сделаем коммит и запушим изменения в форк
- теперь, когда наши изменения есть в форке, мы можем сделать запрос на добавление их в исходный репозиторий Pull Request
- в поле base fork укажем исходный репозиторий
- в поле head fork укажем свой форк
- нажмем на кнопку Create pull request
Возьмите любой свой проект, создайте для него репозиторий на github и залейте в него код своего проекта.
Если очень хочется приватных репозиториев - для студентов бесплатно (https://education.github.com/)
- ближе познакомимся со структурой git репозиториев
- научимся создавать ветки
- научимся откладывать изменения до лучших времен
- поговорим о каноничном workflow
- немного tips&tricks