GitHub: clone, remote, push и pull

GitHub хранит удаленную копию репозитория и помогает работать с кодом через браузер, issue, pull request и review. Локальный Git отвечает за историю на вашем компьютере, а GitHub - за синхронизацию и совместную работу.

Клонирование проекта

git clone https://github.com/example/demo.git
cd demo
git status

git clone скачивает репозиторий и сразу настраивает удаленный адрес origin.

Проверка remote

git remote -v

Remote - это имя удаленного репозитория. Обычно основной remote называется origin.

Отправка изменений

git switch -c docs/update-readme
git add README.md
git commit -m "Обновить README"
git push -u origin docs/update-readme

git push отправляет локальную ветку на GitHub. Флаг -u связывает локальную ветку с удаленной, чтобы дальше можно было писать просто git push.

Получение изменений

git pull

git pull получает изменения из удаленной ветки и пытается объединить их с локальной. Перед pull полезно убедиться, что рабочее дерево чистое.

Fetch перед объединением

Когда важно сначала понять расхождение веток, отделите получение сведений от изменения локальной истории:

git fetch origin
git log --oneline --left-right HEAD...origin/main

git fetch обновляет remote-tracking ветки вроде origin/main, но не меняет рабочие файлы и текущую ветку. В выводе git log --left-right видно, какие коммиты есть только локально и какие — только на сервере. После проверки можно выбрать merge, rebase или git pull --ff-only, если допустимо только линейное быстрое продвижение.

Обычный git pull сначала выполняет fetch, а затем интегрирует изменения согласно настройкам репозитория. Если истории разошлись, не исправляйте общую ветку принудительным push: сначала выясните командное правило и осознанно объедините коммиты.

GitHub не заменяет понимание Git. Если вы понимаете локальные коммиты, ветки и diff, команды push и pull становятся логичным продолжением, а не набором загадочных действий.

Источники