Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions git/stash.ipynb

Large diffs are not rendered by default.

38 changes: 38 additions & 0 deletions git/stash.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
"""[TASK] STASH #3."""

# 1. Что делает команда git stash?
# - Сохраняет изменения в рабочей директории и индексированные изменения в локальное хранилище
# 2. Как просмотреть список всех сохранённых изменений (стэшей)?
# - Команда git stash list показывает сохраненные стеши
# 3. Какая команда применяется для использования верхнего стэша?
# - Команда git stash apply
# 4. Как применить конкретный стэш по его номеру?
# - git stash apply stash@{N}, где N - номер стеша
# 5. Чем отличается команда git stash apply от git stash pop?
# - git stash apply применяет изменения из стэша, но оставляет его в списке
# - git stash pop применяет изменения и удаляет этот стэш из списка
# 6. Что делает команда git stash drop?
# - git stash drop stash@{N} - удалит стеш с номером N
# 7. Как полностью очистить все сохранённые стэши?
# - git stash clear
# 8. В каких случаях удобно использовать git stash?
# - Когда необходимо переключиться на другую ветку или задачу без необходимости закоммитить текущие изменения
# 9. Что произойдет, если выполнить git stash pop, но в проекте есть конфликтующие изменения?
# - Будет сообщение о конфликте, требующем ручного разрешения
# 10. Можно ли восстановить удалённый стэш после выполнения git stash drop?
# - Можно, если не закрыли терминал (пока объекты не были удалены сборщиком мусора):
# 1. git fsck --no-reflog | awk '/dangling commit/ {print $3}' - выведет список хешей коммитов, на которые больше нет ссылок
# 2. git show <хеш_коммита> - посмотреть содержимое стеша
# 3. git stash apply <хеш_коммита> - применить изменения как стэш
# 11. Что делает команда git stash save "NAME_STASH"
# - Сохраняет изменения в стэш с комментариями, указанными в кавычках
# 12. Что делает команда git stash apply "NUMBER_STASH"
# - Применяет конкретный стэш по номеру
# 13. Что делает команда git stash pop "NUMBER_STASH"
#
# Сохраните текущие изменения в стэш под названием "SENATOROV ver1", вставьте скриншот из терминала
#
# Внесите любые изменения в ваш репозиторий и сохраните второй стэш под именем "SENATOROV ver2"
# Восстановите ваш стэш "SENATOROV ver1", вставьте скриншот из терминала
# Удалите все стеши из истории, вставьте скриншот из терминала
#
Comment on lines +1 to +38
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

пожалуйста, сделайте ревью

195 changes: 195 additions & 0 deletions github/quiz.ipynb

Large diffs are not rendered by default.

165 changes: 165 additions & 0 deletions github/quiz.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
"""[TASK] Контрибьютинг в Open Source #8."""

# GitHub
# 1.1. Что такое GitHub?
# - GitHub — это веб-платформа для хостинга Git-репозиториев, которая позволяет разработчикам хранить, управлять и совместно работать над кодом. GitHub предоставляет облачное хранилище для репозиториев и включает инструменты для управления проектами, отслеживания проблем (issues), code review и автоматизации через GitHub Actions.
#
# 1.2. Как GitHub связан с Git?
# Git — это распределенная система контроля версий
# GitHub построен на основе Git и предоставляет веб-интерфейс и дополнительные функции для работы с Git-репозиториями.
# - Основные различия:​
# Git — программное обеспечение для локального управления версиями
# GitHub — облачный сервис для хостинга Git-репозиториев с функциями совместной работы
# Git работает через командную строку, GitHub предоставляет графический интерфейс
# Git бесплатен и с открытым кодом, GitHub принадлежит Microsoft и имеет платные тарифы
#
# 1.3. Чем отличается fork репозитория от его клонирования (clone)?
# - Fork (форк):​
# Создает полностью независимую копию репозитория на вашем GitHub-аккаунте
# Используется для внесения вкладов в чужие проекты через pull requests
# Оригинальные разработчики не имеют доступа к вашему форку
# - Clone (клонирование):​
# Создает локальную копию репозитория на вашем компьютере
# Копия остается связанной с исходным репозиторием
# Вы можете синхронизировать изменения через git push и git pull
#
# 1.4. Зачем нужны и как работают pull requests?
# - Pull request (PR) — это механизм для предложения изменений в проект.
# - Назначение:​
# Уведомить других разработчиков о завершенной функции
# Инициировать code review
# Обсудить предлагаемые изменения
# Получить обратную связь перед слиянием кода
# - Как работает:​
# Разработчик создает ветку с изменениями
# Отправляет ветку в репозиторий (свой fork или общий)
# Открывает pull request через GitHub
# Команда обсуждает и проверяет код
# Вносятся дополнительные изменения при необходимости
# Сопровождающий проекта принимает и сливает изменения
#
# 1.5. GitHub использует ваш почтовый адрес для привязки ваших Git коммитов к вашей учётной записи?
# Да
#
# 1.6 Какая команда генерирует SSH ключ для Доступа по SSH к репозиторию (Рисунок 83)
# - Команда для генерации SSH-ключа:​​
# ssh-keygen -t rsa -b 4096 -C "[email protected]"
# - Или с использованием более современного алгоритма:
# ssh-keygen -t ed25519 -C "[email protected]"
# Параметры:​
# -t — тип ключа (rsa, ed25519)
# -b 4096 — размер ключа в битах (для RSA)
# -C — комментарий (обычно ваш email)
#
# Внесение собственного вклада в проекты
# 2.9 Как открыть запрос слияния, указывающий на другой запрос слияния и зачем это нужно? (Рисунок 117)
# Как открыть запрос слияния:
# Создайте первую ветку (feature-a) из основной ветки (main/master).
# Откройте Merge request A из feature-a в main.
# Создайте вторую ветку (feature-b) из feature-a (а не из main).
# Откройте Merge request B из feature-b в main
# Зачем нужно:
# Разделение сложных задач
# Параллельная разработка
# Управление порядком интеграции
#
# Рабочий процесс с использованием GitHub
# 3 Напишите 8 пунктов, которые нужно сделать, чтобы внести вклад в чужой проект.
# Форкнуть проект
# Клонировать форк локально
# Создать отдельную ветку для изменений
# Внести изменения
# Закоммитить изменения
# Отправить изменения в свой форк
# Создать Pull Request
# Подождать проверки
#
# 3.1 Какие практики принято соблюдать при создании Pull Request чтобы закрыть автоматический issues?
# В описании pull request использовать ключевые слова и номер issue:
# Fixes #123
# Closes #456
# Resolves #789
# Какие практики принято соблюдать при создании commit чтобы закрыть автоматический issues?
# тоже самое, что и в пулл реквесте
#
# 3.2 Как отклонить/закрыть пул реквест? (предоставьте скриншот где это в гитхабе)
# ![image.png](attachment:image.png)
#
# 3.3 Перед отправкой пул реквеста нужно ли создавать ишьюс?
# Нет, это не обязательно, но зависит от практик конкретного проекта.
# 3.4 В какой вкладке можно посмотреть список изменений который был в пул реквесте? (Рисунок 92)
# Files changed
# 3.5 В какой вкладке находится страница обсуждений пул реквеста? (Рисунок 94)
# Conversation
#
# Создание запроса на слияние
# 4 Можно ли открыть пул реквест, если вы ничего не вносили в FORK?
# Нет
#
# 4.1 Что нужно сделать чтобы открыть пул реквест? (Рисунок 90)
# Сделать форк (копию) нужного репозитория на GitHub и склонировать его себе локально.
# Создать новую ветку в локальном репозитории для ваших изменений.
# Внести необходимые правки в код или файлы и закоммитить изменения в этой ветке.
# Отправить (push) вашу ветку с изменениями в ваш форк на GitHub.
# На сайте GitHub перейти в ваш форк, и после пуша появится кнопка "Compare & pull request" — нажать ее.
# Убедиться, что выбраны правильные ветки — откуда (ваша ветка) и куда (обычно main или master основного репозитория).
# Написать заголовок и описание к пул реквесту, чтобы объяснить суть изменений.
# Создать сам пул реквест кнопкой "Create pull request".
#
# 4.2 Что нужно сделать Если ваш Форк устарел?
# Нужно синхронизировать его с оригинальным репозиторием:
# Добавить исходный репозиторий как удалённый с именем «upstream»
# Получить все изменения из оригинального репозитория
# Переключиться на нужную ветку
# Синхронизировать изменения
# Отправить изменения в свой форк
#
# 4.3 Что нужно сделать если в пул реквесте имеются конфликты слияния (Рисунок 96)
# Добавляем исходный репозиторий как удалённый с именем «upstream»
# Получаем последние изменения из него
# Сливаем основную ветку в нашу тематическую
# Исправляем указанный конфликт
# Отправляем изменения в ту же тематическую ветку
#
# Отрывки кода
# 5 Что нужно сделать Для добавления отрывка кода в комментарии к ишьюсу? (Рисунок 104)
# Для добавления отрывка кода следует обрамить его обратными кавычками
# 5.1 На какую клавишу нажать клавишу чтобы выделенный текст был включён как цитата в ваш комментарий?(Рисунок 105)
# Клавиша "r"
# 5.2 Как вставить картинку в ишьюс? (Рисунок 108)
# Перетащить картинку или скопировать изображение
#
# Поддержание GitHub репозитория в актуальном состоянии
# 6 Как понять что ваш форк устарел?
# При появлении в оригинальном репозитории новых коммитов GitHub информирует вас при помощи сообщения: This branch is 5 commits behind progit:master
#
# 6.1 Как обновить форк?
# Sync fork - Update branch
#
# Добавление участников
# 7 Как добавить участников в ваш репозиторий, чтобы команда могла работать над одним репозиторием? (Рисунок 112)
# «Settings» - «Collaborators» - «Add collaborator»
#
# Упоминания и уведомления
# 8 Какой символ нужен для упоминания кого-либо? (Рисунок 118)
# Символ "@"
# 8.1 Где находится Центр уведомлений, напишите ссылку (Рисунок 121)
# https://github.com/notifications
#
# Особенные файлы
# 9 Что такое и зачем нужен файл README
# Файл README — это текстовый файл, который содержит информацию о проекте, его назначение — предоставлять первичные сведения, которые необходимо прочитать пользователю или разработчику.
#
# 9.1 Что такое и зачем нужен файл CONTRIBUTING (Рисунок 122)
# Файл CONTRIBUTING — это документ в репозитории, который содержит правила и инструкции для тех, кто хочет внести вклад в разработку проекта. Основная цель этого файла — помочь новым участникам понять, как правильно взаимодействовать с проектом и что нужно делать для успешного добавления изменений.
# Он описывает процесс участия: как клонировать репозиторий, создавать ветки, вносить изменения и отправлять их на проверку через pull requests. В файле устанавливаются стандарты и требования по коду, формату коммитов, стилю программирования, тестированию и другим аспектам разработки.
#
# Управление проектом
# 10 Как изменить основную ветку (Рисунок 123)
# «Options» - Default branch
# 10.1 Как передать проект? какая кнопка? (рисунок 124)
# «Options» - «Transfer ownership»
# 10.2 Что такое файл .gitignore?
# Файл .gitignore — это текстовый файл в системе контроля версий Git, который содержит список файлов и каталогов, которые Git должен игнорировать и не отслеживать.
#
#
Loading
Loading