Views Comments Previous Next Search

Я пишу текстовую игру на Python: мой первый репозиторий на GitHub

 В новом выпуске блога о программировании я пишу о системах управления версиями на примере Git, а также показываю, как отправить свой первый репозиторий на GitHub.

Я пишу текстовую игру на Python: мой первый репозиторий на GitHub. Изображение № 1.

Предыдущий выпуск

Я пишу текстовую игру на Python: альфа-версия

 

Я пишу текстовую игру на Python: мой первый репозиторий на GitHub. Изображение № 2.

Если вы начали писать код всерьёз, то без системы управления версиями никуда. Стоит вам начать ею пользоваться, как вы сразу поймёте три её основные преимущества:

  Отслеживание всех изменений в коде. Если что-то пошло не так, можно вернуться к предыдущей версии (коммиту) и попробовать снова.

  Ведение нескольких версий одновременно. Эксперименты и устранение багов не затрагивает основную стабильную версию.

  Совместная работа. Можно писать код для одного проекта параллельно с другими и легко объединять весь труд.

Я расскажу о самой распространённой системе управления версиями — 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, лицензию и прочие вещи — так, как вам удобно. На этом всё, до следующего раза!

Смотрите также:

  Документация Git и GitHub

  Подробное руководство по GitHub для новичков на Readwrite

  Краткое РУКОВОДСТВО для освоения Git

Рассказать друзьям
3 комментарияпожаловаться

Комментарии

Подписаться
Комментарии загружаются