⇤ ← Версия 1 от 2021-02-24 23:11:18
1390
Комментарий:
|
4950
|
Удаления помечены так. | Добавления помечены так. |
Строка 18: | Строка 18: |
[[https://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах|Базовая статья]] (читать всю главу) |
|
Строка 20: | Строка 22: |
Ветка:: именованный путь в графе истории изменений, ссылка на ветку отмечает ''конец'' такого пути | * '''Ветка''': именованный путь в графе истории изменений, ссылка на ветку отмечает ''конец'' такого пути * `git checkout -b ветка` / `git checkout ветка` — приводит рабочую копию в соответствие последнему срезу ветки * `HEAD`, `HEAD^`, `HEAD^^`, … ==== Merge: объединение историй ==== К. О.: `git merge` * Если наследование прямое, просто передвигается HEAD * Если есть отдельная история, формируется т. н. merge commit * Если есть интерференция коммитов (conflicts), формируется `diff3`, который надо исправлять руками |
Строка 22: | Строка 31: |
* `git checkout -b ветка` / `git checkout ветка` — приводит рабочую копию в соответствие последнему срезу ветки | '''TODO''' Пример |
Строка 24: | Строка 33: |
'''TODO''' | ==== Rebase: переписывание истории ==== * Переписывание линейной истории с помощью `git rebase -i` * `$EDITOR` ☺ * Виды действий с историей * (пример) * [[man1:git-rebase|Перенос ветки]] * возможно. потребуется ручное вмешательство * (пример) <!> Общее правило: при `rebase` меняются все коммиты, начиная с первого сделанного изменения (даже если это только reword и он только один) * [[https://habr.com/ru/post/432420/|Статья на Хабре]] относительно выбора междк merge и rebase * [[https://www.freecodecamp.org/news/an-introduction-to-git-merge-and-rebase-what-they-are-and-how-to-use-them-131b863785f/|Исзодная статья]] == PyGame == * [[http://pygame.org|Сайт]] * [[https://www.pygame.org/docs|Документация]] * [[https://www.pygame.org/docs/tut/PygameIntro.html|пример]] == Д/З == 1.#0 Прочитать и прощёлкать * Про ветвление [[https://git-scm.com/book/ru/v2/Ветвление-в-Git-О-ветвлении-в-двух-словах|в учебнике по Git]] * Две методички по PyGame ([[https://www.pygame.org/docs/tut/PygameIntro.html|введение]] и [[https://www.pygame.org/docs/tut/ChimpLineByLine.html|пришиби макаку]]) 1. Задача на PyGame: * Склонировать [[https://github.com/FrBrGeorge/PyGame|Пример]] * Реализовать гравитацию (это просто приращение скорости) * Написать класс «вращающиеся шары разного размера» на базе основного класса * можно использовать [[pygame:transform.html#pygame.transform.rotozoom]] * поворачивать и масштабировать лучше каждый раз исходное изображение * Реализовать соударение * просчитывать соударение нескольких не нужно * поскольку шар круглый, при принятии решения о соударении можно использовать знание о диаметре шара, в общем случае удобнее [[pygame:mask.html|pygame.mask]] * Коммиты оформлять сообразно дисциплине, описанной в прошлой лекции * Опубликовать склонированный репозиторий * (Когда будем изучать инфраструктуру, в Д/З войдут pull-реквесты) |
Работа с историей и событийное программирование
Git
Структура
Содержимое .git
- …
.git/objects/??/*
- Блобы (файлы)
Деревья (не деревья! это срезы рабочей копии, как файл называется + его id)
- Коммиты: какой блоб из какого получился (в действительности — какой срез из какого) + message + родительский коммит
см. git log -p --full-index
python3 -c "import zlib; import sys; print(zlib.decompress(sys.stdin.buffer.read()).decode())"
но проще openssl zlib -d
- Примеры
⇒ Git хранит все когда-либо бывшие объекты и деревья
Ветки
Базовая статья (читать всю главу)
Деревья — не деревья, а срезы ⇒ ветки — не ветки, а что?
Ветка: именованный путь в графе истории изменений, ссылка на ветку отмечает конец такого пути
git checkout -b ветка / git checkout ветка — приводит рабочую копию в соответствие последнему срезу ветки
HEAD, HEAD^, HEAD^^, …
Merge: объединение историй
К. О.: git merge
- Если наследование прямое, просто передвигается HEAD
- Если есть отдельная история, формируется т. н. merge commit
Если есть интерференция коммитов (conflicts), формируется diff3, который надо исправлять руками
TODO Пример
Rebase: переписывание истории
Переписывание линейной истории с помощью git rebase -i
$EDITOR ☺
- Виды действий с историей
- (пример)
- возможно. потребуется ручное вмешательство
- (пример)
Общее правило: при rebase меняются все коммиты, начиная с первого сделанного изменения (даже если это только reword и он только один)
Статья на Хабре относительно выбора междк merge и rebase
PyGame
Д/З
- Прочитать и прощёлкать
Про ветвление в учебнике по Git
Две методички по PyGame (введение и пришиби макаку)
Задача на PyGame:
Склонировать Пример
- Реализовать гравитацию (это просто приращение скорости)
- Написать класс «вращающиеся шары разного размера» на базе основного класса
можно использовать transform.html
- поворачивать и масштабировать лучше каждый раз исходное изображение
- Реализовать соударение
- просчитывать соударение нескольких не нужно
поскольку шар круглый, при принятии решения о соударении можно использовать знание о диаметре шара, в общем случае удобнее pygame.mask
- Коммиты оформлять сообразно дисциплине, описанной в прошлой лекции
- Опубликовать склонированный репозиторий
- (Когда будем изучать инфраструктуру, в Д/З войдут pull-реквесты)