03.03 git: работа с ветками

Прежде всего: разберёмся с основной веткой Д/З. Она должна называться work. Если у вас не так (например, main), то:

И в последующие разы всегда делать

План занятия:

  1. разогрев
    • беглое повторение про ветки (из лекции)
    • qgit и полная история

    • {OK} пример с ребейзом

      • сделать первый коммит
      • сделать ветку
      • сделать в неё два коммита
      • переключиться на master
      • сделать в него два неконфликтующих коммита (например, в новый файл)
      • посмотреть, какой коммит был раньше какого
      • поребейзить ветку поверх мастера
      • убедиться в линейности истории
    • {OK} пример с мержем (ветку используем с предыдущего примера)

      • переключиться на master
      • сделать в master два коммита
      • переключиться на ветку
      • сделать на ветке два неконфликтующих коммита
      • помержить ветку с master-ом
      • увидеть мерж-коммит и граф истории
    • {OK} пример с «переотрастанием» ветки при rebase (aka «ветка — не ветка»)

      • создать историю из 4 коммитов
      • сделать ветку, совпадающую с master
      • на ветке сделать rebase -i на два шага истории назад

      • исправить самый первый коммит (достаточно reword в commit message!)
      • убедиться, что ветка теперь отрастает из другого места (а git diff ничего не показывает)
  2. {i} Создать отдельный репозторий

    • сделать в нём 5 коммитов
    • сделать ветку rebased. на этой ветке с помощью git rebase --root -i:

      • переставить второй и третий коммит
      • слить четвёртый и пятый коммит в один
      $ git -P log --all --graph --oneline
      * 4c7af4d (HEAD -> rebased) Commit 4
      * 802744a Commit 2
      * 2ecda85 Commit 3
      | * de9f9b5 (master) Commit 5
      | * a5bac51 Commit 4
      | * 715e908 Commit 3
      | * 69f72f5 Commit 2
      |/  
      * d26fec6 Commit 1
  3. Работа с модулем shlex (нe было на лекциях)

    • {OK} split, join и quote

    • {i} Ввести одну строку — командную строку воображаемого интерпретатора — и «причесать» её: удалить лишние пробелы, нормализовать кавычки и т. п.

    • {i} Имеются две строки: ФИО (с пробелами) и место рождения с указанием типа места рождения (может содержать кавычки, например, гостиница "Рояль"). С помощью shlex.join() сформировать командную строку, вида register ФИО МЕСТО, в которой у register ровно два параметра

      • Вывести этот ужасрезультат на экран

    • {i} (Продолжение)

      • Ввести результат прошлого упражнения и проверить с помощью shlex.split(), что строка имеет правильный формат

      • (TODO сформулировать пояснее) Подобрать более простую комбинацию кавычек (\"), которая давала бы тот же результат после shlex.split()

TODO успели на полчаса раньше

Д/З

<!> Задача_1: работа с ветками в git при разработке программы

LecturesCMC/PythonDevelopment2025/Prac/03_DvcsBranchMerge (последним исправлял пользователь FrBrGeorge 2025-03-03 14:37:29)