четверг, 14 августа 2014 г.

Пару слов o git. Или больше

За свою тестерскую жизнь мы с вами можем менять проекты (написанные на разных языках и с использованием разных методологий и подходов) множество раз. Ещё вчера мы тестировали веб-приложения на PHP с использованием MySQL, сегодня перешли на десктоп с Java и MS SQL, завтра - мобильные сервисы, Ruby On Rails, postgresql. И хотя все языки программирования похожи (да простят меня программисты), все СУБД кажутся одинаковыми, а подходы в тестировании давно известны, - наступает такой момент, когда нужно использовать в работе что-то новое. Например, git.

Что такое git, с чем его едят и как им пользоваться очень хорошо расписано в этой книге (она даже на русском! - если кому-то это принципиально), но если времени почитать нет ("я почитаю, обязательно, конечно, стопудово, даю слово сам себе!"), к тому же там ещё и 282 страницы убористым шрифтом, а работать надо начать уже сегодня - то вот простое руководство с самыми необходимыми командами.

Итак, что нам понадобится в git "на первое время" :)


Первое, что нужно сделать, - зарегистрироваться на github (если у Вас ещё нет там аккаунта) и/или получить доступ к нужным проектам.

Затем нам нужно установить git. Делается это просто. В линуксовой консоли вводим команду:
sudo apt-get install git 

Примечания: если у Вас apt-get и если за Вас это не установил ещё админ.

Дальше начинаем работать.
Для начала посмотрим какие ветки уже есть на машине. Для этого используем команду
git branch


На экране у Вас появится список веток, которые уже лежат на машине (если Вы их туда положили, конечно). Если не положили - такого списка не будет.
Итак, списка нет, всё грустно, что же делать? Выход один: посмотреть какие вообще есть ветки на этом проекте. Для этого воспользуемся командой, которая поможет нам посмотреть список веток на удаленной машине. Выглядит она почти также, за исключением мааааленького дополнения:
git branch -a



На экране появятся сначала те ветки, которые лежат на Вашей машине, а потом те, которые лежат на сервере (путь к ним - remotes/origin/....).

Отлично, список веток мы получили. Теперь нужно начать работать в какой-то из них. Для начала проверим не находимся ли мы уже в какой-то. Чтобы сделать это достаточно ввести команду
git status


Отлично! Мы получили сообщение о том, что находимся в ветке мастер (On branch master), а также о том, что она не нуждается в обновлении, поскольку соответствует той, что на сервере (Your branch is up-to-date with 'origin/master'). А дальше ещё одна загадочная фраза: nothing to commit, working directory clean, которая означает, что Вы ничего ещё не наделали значимого и никакие изменения на сервер Вам отправлять не нужно.

Итак, мы находимся в основной ветке. Но разработка нашей фичи (исправление нашей баги) находится в другой ветке. Что же делать? Выхода два: просить слезно программистов залить все изменения в мастер (и вернуться к каменному веку разработки) или ввести простую команду:
git checkout имя_ветки


Отлично! Мы переключились в нужную нам ветку (Switched to branch 'SAM-323-..') и она даже не нуждается в обновлении (Your branch is up-to-date with 'origin/SAM-323....').

Можно стартовать сервер и начинать работу :)
Хотя нет, ещё одна команда на случай, если изменения всё же придется подтянуть:
git pull алиас имя_ветки


После введения команды у Вас запросят имя пользователя, а затем - пароль на гитхаб. И начнется магия! :) В конце магии Вас прозаично проинформируют о том, сколько файлов было изменено, сколько удалено, сколько добавлено и прочая неважная при первом знакомстве информация :)

Вот теперь точно всё!
Запускайте сервер и удачной работы :)
Да прибудет с Вами сила!


5 комментариев:

  1. Мне кажется, что все же между `sudo apt-get install git` и `git branch` пропущено самое важное. Проект скорее всего надо сперва форкнуть, а потом и склонировать на машину. И вдобавок, не обязательно гит должен работать с гитхабом (за который еще и платить надо), есть и другие ресурсы, как например bitbucket.org

    ОтветитьУдалить
    Ответы
    1. Да, необязательно работать с гитхабом (я потому там ненавязчиво приписала "и/или" :) Наверное, слишком ненавязчиво :) )
      Про клонирование проекта - тоже да, но обычно этим занимаются специально обученные люди - раз. И клонировать проект надо всё же реже, чем работать с ветками - это два.
      В целом можно ещё и про подтягивание баз написать, и про особо типичные ошибки, .... . А хотелось как-то покороче и по существу.

      Удалить
  2. Я в гите не разбираюсь, но думаю можно было бы расказать и про
    make clean; make
    git fetch
    а то уж очень короткая статья вышла.
    Спасибо,
    Андрей

    ОтветитьУдалить
    Ответы
    1. Спасибо за комментарий :) Явно назревает ещё один пост :)

      Удалить
  3. В Codeschool, кстати, есть интерактивный обучающий курс - TryGit https://try.github.io/levels/1/challenges/1 Там, кто его пройдёт, сервис предлагает ещё 3 курса на тему Git: https://www.codeschool.com/paths/git и один скринкаст.

    ОтветитьУдалить