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

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

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

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

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

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

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

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

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

      • исправить самый первый коммит (достаточно reword в commit message!)
      • убедиться, что ветка теперь отрастает из другого места (а git diff ничего не показывает)
  2. Работа с модулем shlex (нe было на лекциях)

    • {OK} split, join и quote

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

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

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

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

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

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

Д/З

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

LecturesCMC/PythonDevelopment2024/Prac/03_DvcsBranchMerge (последним исправлял пользователь hbd 2024-03-04 14:41:15)