🔄 Как обновить проект с GitHub
Руководство по обновлению локальной копии проекта из удалённого репозитория GitHub.
📋 Быстрое обновление
Если вы не вносили локальных изменений, выполните:
cd путь/к/проекту
git pull origin main
📖 Подробная инструкция
Шаг 1: Перейдите в папку проекта
Linux/macOS:
cd /путь/к/проекту/telegram-bot-builder
Windows (PowerShell):
cd C:\projects\telegram-bot-builder
Windows (cmd):
cd C:\projects\telegram-bot-builder
Шаг 2: Проверьте текущую ветку
Узнайте, в какой ветке вы находитесь:
git branch
Текущая ветка будет отмечена звёздочкой *:
develop
* main
feature-branch
💡 По умолчанию используется ветка
main(илиmaster)
Шаг 3: Проверьте статус репозитория
Убедитесь, что у вас нет незакоммиченных изменений:
git status
Хороший результат:
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
Если есть изменения:
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
modified: README.md
modified: src/index.ts
Шаг 4: Обновите проект
Способ 1: Простое обновление (рекомендуется)
git pull origin main
Или для других веток:
git pull origin master
git pull origin develop
Что делает эта команда:
git fetch— загружает изменения из удалённого репозиторияgit merge— применяет изменения к вашей локальной копии
Способ 2: Сначала посмотреть изменения
Если хотите сначала проверить, что изменилось:
# Загрузить изменения, но не применять
git fetch origin
# Посмотреть новые коммиты
git log HEAD..origin/main --oneline
# Посмотреть подробные изменения в файлах
git diff HEAD..origin/main
Если всё в порядке, примените изменения:
git pull origin main
⚠️ Возможные проблемы и решения
❌ Конфликты слияния
Ошибка:
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
Причина: Вы вносили локальные изменения в те же файлы, что и в удалённом репозитории.
Решение:
-
Открыть файлы с конфликтами — Git пометит конфликтные места:
<<<<<<< HEADВаш локальный код=======Код из репозитория>>>>>>> origin/main -
Вручную отредактировать файл — оставьте нужную версию или объедините обе
-
Закоммить результат:
git add README.mdgit commit -m "Resolve merge conflict"
❌ Отмена локальных изменений
⚠️ Внимание! Это удалит все незакоммиченные изменения!
Если хотите полностью сбросить локальные правки и получить чистую копию:
# Отменить все изменения в рабочих файлах
git reset --hard HEAD
# Удалить все не tracked файлы (осторожно!)
git clean -fd
# Обновить проект
git pull origin main
❌ Локальные коммиты, которых нет в репозитории
Если вы сделали локальные коммиты:
git status
Your branch is ahead of 'origin/main' by 2 commits.
Варианты:
-
Сохранить коммиты и обновиться:
git pull --rebase origin main -
Отменить локальные коммиты:
git reset --hard origin/main
🔍 Полезные команды
| Команда | Описание |
|---|---|
git status | Показать статус репозитория |
git branch | Показать текущую ветку |
git log --oneline -10 | Последние 10 коммитов |
git fetch origin | Загрузить изменения, не применяя |
git diff HEAD..origin/main | Показать различия |
git pull origin main | Обновить проект |
git reset --hard | Сбросить локальные изменения |
git stash | Временно сохранить изменения |
💡 Советы
- Регулярно обновляйтесь — делайте
git pullраз в несколько дней - Коммитьте свои изменения — перед обновлением сохраняйте свои правки
- Создавайте свои ветки — для экспериментов используйте отдельные ветки:
git checkout -b my-feature
- Используйте
git stash— если нужно временно спрятать изменения:git stash # Спрятать измененияgit pull origin maingit stash pop # Вернуть изменения
📞 Если что-то пошло не так
-
Проверьте подключение к репозиторию:
git remote -vДолжно показать:
origin https://github.com/fedorabakumets/telegram-bot-builder.git (fetch)origin https://github.com/fedorabakumets/telegram-bot-builder.git (push) -
Если репозиторий не подключён:
git remote add origin https://github.com/fedorabakumets/telegram-bot-builder.git -
Попробуйте обновить список удалённых веток:
git remote update origin --prune -
Создайте Issue на GitHub — если проблема не решается