Skip to content

Latest commit

 

History

History

lecture_1

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

о чем мы сегодня?

  • поговорим о том, как правильно хранить свои исходники
  • что такое VCS, и какие они бывают
  • почему GIT и с чем его есть?
  • создадим первый репозиторий
  • завалимся в репозиторий Лямбды

VCS - Version Control System

Три самые популярные платформы VCS:

  1. SVN
  2. Mercurial
  3. Git

SVN

  • централизованная открытая VCS
  • svnserve - серверная часть, в которой хранятся исходники
  • svn - клиентская часть, в которой программисты трудятся над кодом
  • когда код готов, он отправляется на серверную часть, где сливается с предшествующей версией

Mercurial

  • децентрализованая VCS
  • хранит данные об изменении каждого файла

Git

  • децентрализованная VCS
  • хранит общие изменения всего репозитория
  • гибкая система ветвления
  • возможность сохранять изменения без доступа к интернету
  • каждый программист клонирует не копию, а полноценную версию репозитория

Платформы для Git-репозиториев (SaaS)

Github

  • самое популярное решение для open-source проектов
  • сколько угодно открытых репозиториев
  • приватные репозитории - по подписке
  • объединение в организации (@lambdafrela)
  • интеграция с множеством сторонних сервисов - Slack, Trello, Travis CI, etc.
  • поддержка GIT, SVN, Hg и TFS

Gitlab

  • сколько угодно открытых репозиториев
  • сколько угодно приватных репозиториев
  • объединение в организации
  • гибкая настройка прав доступа
  • собственный сервис continous integration
  • можно запускать на своем сервере

Bitbucket

  • сколько угодно открытых репозиториев
  • сколько угодно приватных репозиториев
  • объединение в организации
  • собственные клиенты на ПК и Android
  • интеграция с enterprise-сервисами Atlassian - Jira, etc.

создадим первый репозиторий

итак, с чего же начать?

Дадим системе понять, кто мы такие:

  1. git config --global user.name "John Doe"
  2. git config --global user.email [email protected]

создадим проект

  1. создадим папку с нашим будущим проектом mkdir myfirstrepo
  2. зайдем в папку cd myfirstrepo
  3. инициализируем репозиторий
    git init

создадим в нем пустой файл и добавим в него текст

немного о структуре репозитория

любой git-репозиторий состоит из трех "деревьев", в которых хранятся изменения:

  • working directory - рабочая папка, в которой содержатся файлы в отредактированном виде
  • Index - выступает в роли "временного фиксатора"
  • HEAD - файлы находятся в состоянии последнего сделанного коммита

http://rogerdudler.github.io/

посмотрим, что стало с нашим репозиторием

git status

добавим наш новый файл в Index

git add .

создадим commit (отпечаток) наших изменений, добавив наш файл в HEAD

git commit -m "my first commit"

Использование Github как хостинг для репозитория

создадим репозиторий на Github

создадим репозиторий на Github

создадим репозиторий на Github

сделаем наш локальный репозиторий общедоступным

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

  • добавим remote по имени origin, т.е. путь к серверу, на котором будет храниться код
    git remote add origin https://github.com/murych/myfirstproject.git
  • зальем наш код в remote в ветку master
    git push -u origin master
  • введем логин и пароль

voila~

voila~

Принимаем участие в "разработке" чужих проектов

А теперь - немного практики! Найдем репозиторий нашего сообщества, сохраним себе, и даже внесем небольшой вклад в общее дело!

  • заходим на Github и ищем пользователя lambdafrela

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

  • склонируем репозиторий на свой компьютер
    git clone https://github.com/murych/myfirstproject.git

  • создадим файл под названием ваше_имя.txt, в который запишем ваш email

  • сделаем коммит и запушим изменения в форк

  • теперь, когда наши изменения есть в форке, мы можем сделать запрос на добавление их в исходный репозиторий Pull Request

  • в поле base fork укажем исходный репозиторий
  • в поле head fork укажем свой форк
  • нажмем на кнопку Create pull request

все, кто сделают свой Pull request, станут участниками @lambdafrela на Github

домашнее задание

Возьмите любой свой проект, создайте для него репозиторий на github и залейте в него код своего проекта.

Если очень хочется приватных репозиториев - для студентов бесплатно (https://education.github.com/)

что в следующий раз?

  • ближе познакомимся со структурой git репозиториев
  • научимся создавать ветки
  • научимся откладывать изменения до лучших времен
  • поговорим о каноничном workflow
  • немного tips&tricks