Решение: полный PR workflow (шаги 1–10)
Шаг 1. Создать issue
На GitHub: перейдите в репозиторий → вкладка Issues → New Issue. Введите заголовок и описание. Назначьте метку (bug, enhancement, documentation). Нажмите Submit.
Запомните номер созданного issue (например, #9) — он понадобится при создании PR.
Шаг 2. Форкнуть репозиторий
На GitHub: нажмите кнопку «Fork» в правом верхнем углу страницы репозитория.
Шаги 3–4. Клонировать, внести изменения, создать ветку
# Клонируем свой форк
git clone https://github.com/YOUR_USERNAME/repo.git
cd repo
# Убедиться, что находимся на master
git status
# Создать новую ветку по номеру issue (без пробелов)
git checkout -b GH-9-temperature-amplitude
# Внести изменения (редактируем файлы)
echo "$(date)" >> README.md
# Добавить все изменения
git add .
# Создать коммит
git commit -m "Add date to README, closes #9"
Шаг 3а + 3б. Push и открытие PR
# Пушим ветку в свой форк (git подскажет правильную команду)
git push --set-upstream origin GH-9-temperature-amplitude
После push переходим в браузер на GitHub → свой форк → GitHub предложит кнопку «Compare & pull request» → нажимаем → в описании указываем #9 → «Create pull request».
Шаги 4–8. Ревью, обсуждение, правки
Если владелец репозитория указал на проблемы:
# Вносим правки в файлы
# ...
# Добавляем и коммитим правки
git add file.txt
git commit -m "Fix review comments"
# Пушим в ту же ветку (PR обновится автоматически)
git push origin GH-9-temperature-amplitude
Шаг 5. Ребейз перед merge
git rebase master # или: git rebase main
Шаг 6. Merge
Через GitHub: на странице PR нажать «Merge pull request» → «Confirm merge». Или выбрать «Rebase and merge» для линейной истории.
Шаги 9–10. Вернуться на master и обновиться
git checkout master
git pull
Решение: обновление форка через upstream
# 1. Проверить текущие remote
git remote -v
# origin https://github.com/YOUR_USERNAME/repo.git (fetch)
# origin https://github.com/YOUR_USERNAME/repo.git (push)
# 2. Добавить upstream (оригинальный репозиторий)
git remote add upstream https://github.com/ORIG_AUTHOR/repo.git
# Проверить (теперь два remote):
git remote -v
# origin https://github.com/YOUR_USERNAME/repo.git (fetch)
# origin https://github.com/YOUR_USERNAME/repo.git (push)
# upstream https://github.com/ORIG_AUTHOR/repo.git (fetch)
# upstream https://github.com/ORIG_AUTHOR/repo.git (push)
# 3. Получить все обновления из upstream
git fetch upstream
# 4. Переключиться на master
git checkout master
# 5. Слить upstream/master в локальный master
git merge upstream/master
# (если нет конфликтов — автоматически завершится)
# 6. Залить обновлённый master в свой форк
git push origin master
Совет: После этого ваш форк полностью синхронизирован с оригиналом. Можно снова создавать ветки и вносить изменения.