Привет! Написал небольшую заметку про то как работать с Git. Если кратко, то git — распределённая система контроля версий, дающая возможность отслеживать изменения в файлах и работать с ними совместно с коллегами . Сейчас сложно представить продуктовую компанию не использующую систему совместной разработки проектов с открытым исходным кодом. Кто — то выбирает и работает с Subversion, Perforce, Mercurial и рядом других систем управления контроля версий.
Об основах (база) работы с данной системой буду рассказывать на примере веб-сервиса GitHub. Сервис (социальная сеть для хранения кода) основан на git.
Использовать какие-то gui-клиенты не буду. А так вообще по работе использую Fork. Для того чтобы показать логику все запросы буду осуществлять через консоль командной строки.
Для начала работы нужно завести учётную запись (зарегистрироваться) на GitHub. И создать репозиторий.
Репозиторий будет находиться по адресу: https://github.com/artoffwar/test.git
Далее установить терминальный клиент для работы с git — скачать по ссылке. Установщик выбирайте в зависимости от вашей операционной системы. Выбрал для Windows 64-bit. В диалоговых окнах установки значения параметров, чек-боксов не менял, оставлял рекомендуемые. После установки на одном из системных дисков ( диск D) создал папку. Назвал Test_Git, перешёл в неё. Теперь надо указать нашей системе контроля версий что данная папка будет являться локальным репозиторием. Для этого нажимаем правой кнопкой мыши и выбираем Git Bash Here. Выполнение запустит bash консоль git в рабочей директории (Test_Git). Так выглядит консоль:
При первом запуске git необходимо выполнить две команды:
git config --global user.email "example@example.com"
example@example.com — указать почту с которой вы зарегистрировались на github.com
и вторая команда:
git config --global user.name "Your name"
Your name — указать login с которым вы зарегистрировались на github.com
При правильном вводе данных команд ошибок быть не должно.
Теперь укажем git что папка в которой мы сейчас находимся является репозиторием (нам нужно её инициализировать). Для этого выполним команду:
git init
В папке Test_Git появиться новая папка «.git», она будет скрытая.
Отлично. Теперь в нашей рабочей папке создадим какой-нибудь текстовый файл. К примеру noname.txt содержащий внутри себя строчку «It.Party».
В консоли введём команду:
git status
Увидим что в коммит ничего не добавлено. Так же noname.txt выделена красным — означает что на данный момент файл и его содержимое находится не под версионным контролем. Добавим файл под версионный контроль командой:
git add noname.txt
Снова проверяем статус. Увидим что коммитов по прежнему нету, а вот noname.txt позеленел. Файл встал под версионный контроль.
Теперь при помощи команды git commit -m "pervonax"
берём слепок всех файлов под версионным контролем и отправляем в локальный репозиторий. В кавычках пишутся комментарии. Конечно не такой как у меня 🙂 хотя…
В начале статьи на веб-сервисе GitHub был создал репозиторий с именем test. Следующим шагом свяжем наш созданный локальный репозиторий с удалённым (https://github.com/artoffwar/test.git) командой:
git remote add origin https://github.com/artoffwar/test.git
Введя команду git remote -v
посмотрим все удалённые репозитории которые связаны с нашим локальным. (убеждаемся в успешности действия шага выше).
Ок. Репозитории связаны. Теперь мне надо чтобы изменения в локальном репозитории передались на удалённый. Будем пушить: git push origin master
Если работаете с git в первый раз то после запроса вылезет окошко где необходимо будет указать валиды вашей учётки (login:psw).
Заходим на https://github.com/artoffwar/test.git получаем профит, файл добавился.
Не было в планах данной статьи останавливаться на ветвлении и слиянии, и по этому очень кратко.
Ветки (branches) используются для разработки функциональности, изолированной от остальной. Ветка master используется по-умолчанию, когда вы создаете репозиторий. После завершения работы над функционалом производят слияние ветки с master. Основные команды:
git branch <имя ветки> – создание новой ветки;
git checkout <имя ветки> – переключение на ветку;
git checkout -b <имя ветки> – создание новой ветки и переключение на нее;
git branch -d <имя ветки> – удаление ветки;
git push origin<имя ветки> – отправить ветку в удаленный репозиторий.
Обновление и слияние:
git pull – изменения из удаленного репозитория обновляют ваш локальный репозиторий;
git merge <имя ветки> – слияние выбранной ветки с активной (отличия одной ветки от другой можно посмотреть командой git diff<имя ветки1> <имя ветки2>).
Отправляя сообщение, Вы разрешаете сбор и обработку персональных данных. Политика конфиденциальности.