Книга Изучаем Python
Скачать 4.68 Mb.
|
ПРИМЕЧАНИЕ Щелкните в окне редактора, чтобы обновить файл и увидеть предыдущую версию . Извлечение предыдущих закреплений Git позволяет извлечь из журнала любое закрепление, не только последнее. Для этого в команде вместо точки указываются первые 6 символов идентифи- катора. Выполняя извлечение, вы можете просмотреть более раннее закрепление и либо вернуться к своему последнему закреплению, либо отказаться от всей последней работы и продолжить разработку с более раннего закрепления: git_practice$ git log --pretty=oneline 08d4d5e39cb906f6cff197bd48e9ab32203d7ed6 Extended greeting. be017b7f06d390261dbc64ff593be6803fd2e3a1 Started project. git_practice$ git checkout be017b Note: checking out 'be017b'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at be017b7... Started project. git_practice$ 490 Приложение Г . Git и контроль версий При извлечении предыдущего закрепления вы покидаете ветвь master и входите в состояние, которое Git называет отсоединенным состоянием HEAD . HEAD — текущее состояние проекта; «отсоединенным» оно называется потому, что мы по- кинули именованную ветвь ( master в данном случае). Чтобы вернуться к ветви master , извлеките ее: git_practice$ git checkout master Previous HEAD position was be017b7... Started project. Switched to branch 'master' git_practice$ Вы снова возвращаетесь к ветви master . Не вносите изменения в проект при из- влечении старого закрепления, если не хотите использовать использовать рас- ширенные возможности Git. Но вы можете вернуться к предыдущему состоянию, если над проектом больше никто не работает. Работая в ветви master , введите следующую команду: git_practice$ git status # On branch master nothing to commit, working directory clean git_practice$ git log --pretty=oneline 08d4d5e39cb906f6cff197bd48e9ab32203d7ed6 Extended greeting. be017b7f06d390261dbc64ff593be6803fd2e3a1 Started project. git_practice$ git reset --hard be017b HEAD is now at be017b7 Started project. git_practice$ git status # On branch master nothing to commit, working directory clean git_practice$ git log --pretty=oneline be017b7f06d390261dbc64ff593be6803fd2e3a1 Started project. git_practice$ Сначала мы проверяем статус и убеждаемся в том, что текущей является ветвь master . В журнале присутствуют оба закрепления . Затем выдается команда git reset --hard с первыми шестью символами идентификатора того закрепления, к которому нужно вернуться . Далее повторная проверка статуса показывает, что мы находимся в главной ветви, а закреплять нечего . Повторное обращение к журналу показывает, что проект находится в том состоянии, к которому мы ре- шили вернуться . Удаление репозитория Случается, что история репозитория нарушается и вы не знаете, как ее восста- новить. Если это произойдет, для начала обратитесь за помощью методами, описанными в приложении В. Если исправить ошибку не удалось, а вы работаете над проектом в одиночку, продолжайте работать с файлами, но сотрите историю проекта, удалив каталог .git . Это не повлияет на текущее состояние файлов, но при- ведет к удалению всех закреплений, так что вы потеряете возможность извлекать другие состояния проекта. Удаление репозитория 491 Для этого либо откройте программу для работы с файлами и удалите репозиторий .git , либо сделайте это в командной строке. После этого необходимо создать новый репозиторий, чтобы снова отслеживать изменения в проекте. Вот как выглядит весь процесс в терминальном сеансе: git_practice$ git status # On branch master nothing to commit, working directory clean git_practice$ rm -rf .git git_practice$ git status fatal: Not a git repository (or any of the parent directories): .git git_practice$ git init Initialized empty Git repository in git_practice/.git/ git_practice$ git status # On branch master # # Initial commit # # Untracked files: # (use "git add # # .gitignore # hello_world.py # nothing added to commit but untracked files present (use "git add" to track) git_practice$ git add . git_practice$ git commit -m "Starting over." [master (root-commit) 05f5e01] Starting over. 2 files changed, 2 insertions(+) create mode 100644 .gitignore create mode 100644 hello_world.py git_practice$ git status # On branch master nothing to commit, working directory clean git_practice$ Сначала мы проверяем статус и видим, что рабочий каталог чист . Затем коман- да rm -rf .git ( rmdir /s .git в Windows) удаляет каталог .git . При проверке статуса после удаления каталога .git выдается сообщение об отсутствии репози- тория Git . Вся информация, используемая Git для отслеживания репозитория, хранится в каталоге .git , поэтому его удаление приводит к уничтожению всего репозитория. Тогда мы можем использовать команду git init для создания нового репозито- рия . Проверка статуса показывает, что все вернулось к исходному состоянию, ожидая первого закрепления . Мы добавляем файлы и выполняем первое за- крепление . Теперь проверка статуса показывает, что проект находится в новой ветви master , а закреплять пока нечего Работа с системой контроля версий потребует некоторых усилий, но стоит немного освоиться, и вам уже не захочется работать без нее. Послесловие Поздравляю! Вы изучили основы Python и применили полученные знания для построения реальных проектов. Вы построили компьютерную игру, провели визуализацию данных и создали веб-приложение. Теперь перед вами открыто несколько разных направлений, по которым вы можете повышать свою квалифи- кацию программиста. На первых порах продолжайте работу над осмысленными проектами, которые пред- ставляют для вас интерес. Программирование становится более интересным, когда вы решаете актуальные, важные задачи, а к этому моменту вы знаете достаточно для того, чтобы участвовать в самых разных проектах. Придумайте собственную игру или напишите свою версию классической аркадной игры. Попробуйте проана- лизировать данные, важные для вас, и создайте визуализации, которые выявляют интересные закономерности и связи. Создайте собственное веб-приложение или имитируйте одно из своих любимых приложений. По возможности предлагайте другим людям использовать ваши программы. Если вы написали игру — пусть кто-нибудь сыграет в нее. Если вы построили визуализа- цию, покажите ее другим людям и посмотрите, как они воспримут результат. Если вы создали веб-приложение, разверните его в Интернете и предложите другим опробовать его. Прислушивайтесь к мнению пользователей и старайтесь учитывать полученную информацию в своих проектах; это поможет вам стать профессионалом более высокого класса. В ходе работы над собственными проектами вы столкнетесь с проблемами, которые будет слишком трудно или даже невозможно решить самостоятельно. Поищите новые способы обратиться за помощью, найдите свое место в сообществе Python. Вступите в местную группу пользователей Python или присоединитесь к одному из сетевых сообществ. Рассмотрите возможность посещения ближайшей конфе- ренции PyCon. Постарайтесь выдержать баланс между работой над проектами, интересующими вас, и развитием ваших общих навыков Python. В Интернете можно найти много источников информации о Python, для программистов среднего уровня написано много книг. Теперь, когда вы овладели основами и знаете, как применять свои на- выки, многие из этих ресурсов станут доступными для вас. Работа с учебниками и книгами Python закрепит изученный материал, углубит ваше понимание про- граммирования в целом и Python в частности. И когда вы после этого вернетесь к работе над проектами, вы сможете более эффективно решать более широкий круг задач. Поздравляем — вы проделали долгий путь! Желаем удачи в дальнейшем изучении Python! Эрик Мэтиз Изучаем Python. Программирование игр, визуализация данных, веб-приложения Перевел с английского Е. Матвеев Заведующая редакцией Ю. Сергиенко Ведущий редактор Н. Римицан Литературный редактор Н. Суслова Корректор М. Одинокова Верстка Л. Соловьева ООО «Питер Пресс», 192102, Санкт-Петербург, ул. Андреевская (д. Волкова), д. 3, литер А, пом. 7Н. Налоговая льгота — общероссийский классификатор продукции ОК 034-2014, 58.11.12.000 — Книги печатные профессиональные, технические и научные. Подписано в печать 20.09.16. Формат 70×100/16. Бумага офсетная. Усл. п. л. 39,990. Тираж 1000. Заказ 0000. |