Я пишу текстовую игру на Python: мой первый репозиторий на GitHub
В новом выпуске блога о программировании я пишу о системах управления версиями на примере Git, а также показываю, как отправить свой первый репозиторий на GitHub.
Предыдущий выпуск
Если вы начали писать код всерьёз, то без системы управления версиями никуда. Стоит вам начать ею пользоваться, как вы сразу поймёте три её основные преимущества:
Отслеживание всех изменений в коде. Если что-то пошло не так, можно вернуться к предыдущей версии (коммиту) и попробовать снова.
Ведение нескольких версий одновременно. Эксперименты и устранение багов не затрагивает основную стабильную версию.
Совместная работа. Можно писать код для одного проекта параллельно с другими и легко объединять весь труд.
Я расскажу о самой распространённой системе управления версиями — Git. Она предустановлена на Mac OS X, а пользователям Windows для начала работы нужно её скачать. Вы можете установить графическую оболочку для работы с Git, но для начала я предлагаю попробовать вводить команды в терминале, чтобы лучше понять, как работает система.
Начнём с простого набора команд, ваших регистрационных данных — имени пользователя и электронной почты:
git config --global user.name [ИМЯ ПОЛЬЗОВАТЕЛЯ]
git config --global user.email [ЭЛЕКТРОННАЯ ПОЧТА]
Введя данные, зайдите с помощью команды cd в папку с проектом, наберите git init, нажмите ENTER — и всё, вы готовы к работе с Git! Впрочем, это только начало.
Только что вы создали репозиторий — набор файлов вашего проекта. В этой папке Git будет следить за всеми изменениями. Наверняка есть такие, за которыми следить не следует: например, разные кэш-файлы. Чтобы система не учитывала их, создайте файл .gitignore и добавьте на каждую его строку названия файлов и папок, для которых нужно сделать исключение. Например:
.DS_Store
__pycache__
Чтобы удалить репозиторий, достаточно удалить папку — с ней погибнет и системный файл .git.
Ключевое понятие Git — это коммит, по сути, некая промежуточная версия приложения с существенными изменениями. Коммитить нужно как можно раньше и как можно чаще, чтобы вы всегда могли откатиться. В коммит входит стадия, которую вы добавляете командой git add [ИМЯ ФАЙЛА]. Чтобы добавить в стадию все файлы репозитория, поставьте на месте имени файла точку.
Суть стадии в том, что часто есть смысл не добавлять в один коммит все изменения, которые вы ввели с предыдущего коммита, а разделить их на разные. Например, вы добавили в файл game.py функцию очистки экрана, а в файл bureaucrat.py — функцию генерации пола бюрократа. Так как эти функции совершенно не связаны друг с другом и находятся в разных файлах, куда лучше разбить их добавление в основную программу на отдельные коммиты. Если окажется, что изменения в файле bureaucrat.py некорректны, вам не нужно будет откатываться слишком далеко.
Чтобы система запомнила коммит, введите команду git commit -m "[ОПИСАНИЕ]". Описание в кавычках должно быть коротким и внятным, вы и другие люди из вашей команды должны чётко понимать, что за изменения были в этом коммите. Проверить текущее состояние репозитория можно, набрав команду git status, историю изменений — git log, при этом модификатор --oneline сделает лог более читаемым.
Итак, вы допустили ошибку и хотите откатиться назад. Для этого наберите команду git checkout [ИМЯ ФАЙЛА], и ваш файл словно волшебным образом вернётся в состояние последнего коммита. Если вы уже добавили файл в стадию, введите git reset HEAD [ИМЯ ФАЙЛА], если добавили его в коммит — git checkout HEAD^ [ИМЯ ФАЙЛА], если хотите откатить весь репозиторий к предыдущему коммиту — git reset --hard HEAD^ [ИМЯ ФАЙЛА]. Чтобы просмотреть текущие изменения в репозитории, воспользуйтесь командой git diff.
Ещё одно важное понятие Git — это ветка. Вы можете параллельно вести сразу несколько веток программы: например, одну стабильную и экспериментальные. С самого начала у вас уже есть активная основная ветка, называемая master — убедитесь в этом, набрав команду git branch. Чтобы отойти от основной ветки, нужно создать новую командой git checkout -b [ИМЯ ВЕТКИ]. Будьте внимательны, на какой ветке вы находитесь сейчас: именно на ней Git отслеживает все изменения. Чтобы вернуться на основную, наберите git checkout master — но лучше всего закончить работу над дополнительной веткой и, убедившись, что с кодом всё в порядке, ввести команду git merge [ИМЯ ДОПОЛНИТЕЛЬНОЙ ВЕТКИ], которая добавит изменения в дополнительной ветке в основную. Так вы можете использовать модульный подход, постепенно подключая к программе новые возможности. Во время объединений бывают, конечно, и конфликты, но о них сейчас не будем — внизу я укажу ссылки, где можно будет подробнее изучить тему. Кстати, чтобы удалить ветку, введите git -d [ИМЯ ВЕТКИ] — только с этой командой надо быть осторожным.
Наконец, пришло время создать репозиторий на сайте GitHub. Если у вас ещё нет там аккаунта, зарегистрируйтесь — только помните, что ваши регистрационные имя пользователя и электронная почта на GitHub должны быть теми же, что вы вводили в начале в терминал. Затем нажмите кнопку Create repository («Создать репозиторий»), введите название, описание и подтвердите создание. На этом этапе вы вполне можете поставить себе для удобства клиент GitHub с графическим интерфейсом, но постоянства ради давайте лучше введём команды одну за другой.
git remote add origin [ССЫЛКА НА РЕПОЗИТОРИЙ]
git push -u origin master
После этого вас попросят ввести имя пользователя и пароль (если вы включали себе двухступенчатую аутентификацию, то создайте токен в настройках своего аккаунта и введите его вместо пароля). Обновите страницу репозитория в браузере, и вы должны увидеть все файлы своего проекта. Теперь вы можете добавить в него README, лицензию и прочие вещи — так, как вам удобно. На этом всё, до следующего раза!
Смотрите также:
Подробное руководство по GitHub для новичков на Readwrite
Краткое РУКОВОДСТВО для освоения Git
Комментарии
Подписаться