Для работы Git в VS Code нужен установленный Git, а не только аккаунт GitHub. Редактор предоставляет интерфейс, Git хранит историю изменений, GitHub размещает удалённую копию репозитория. Локальные коммиты можно создавать без интернета и без регистрации на GitHub.
Ниже два маршрута: начать новый проект или скачать существующий репозиторий. Выберите один, чтобы случайно не создать вложенный Git-репозиторий внутри уже клонированного проекта.
Установите Git и проверьте его обнаружение
Установите Git из официального источника для своей ОС. После установки полностью перезапустите VS Code. В меню Terminal → New Terminal выполните:
git --version
Если версия отображается, откройте Source Control. Встроенной интеграции достаточно для клонирования, просмотра изменений и коммитов; устанавливать GitLens ради первого запуска не обязательно. Требование отдельного Git указано в официальном quickstart VS Code.
Если VS Code не обнаружил программу, в Windows выполните where.exe git, а в macOS/Linux command -v git. Сравните результат во внешнем и встроенном терминале. Не задавайте git.path чужим абсолютным путём до выяснения причины. Когда ручной путь действительно нужен, это пользовательская настройка, а не общая конфигурация репозитория.
Укажите имя и email автора
Git записывает имя и адрес автора в коммиты. Это не данные для входа в GitHub. Подставьте свои значения:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
git config --list --show-origin
--global задаёт настройки для вашего пользователя. Для рабочего проекта с другим адресом выполните git config user.email "[email protected]" внутри его репозитория, без --global. Проверьте, какой конфигурационный файл задаёт значение, через --show-origin.
Адрес [email protected] является примером: не оставляйте его в реальных коммитах. Если не хотите публиковать личную почту, возьмите точный адрес noreply из настроек своего GitHub-аккаунта. Не выдумывайте его по образцу. Приоритет локальной и глобальной конфигурации объясняет руководство Git по первой настройке.
Вариант A: новый локальный проект
Создайте отдельную папку git-start и откройте её в редакторе. Добавьте файл README.md с кратким описанием. Откройте Source Control и нажмите Initialize Repository. Терминальный эквивалент из этой же папки:
git init
git status
Проверьте, что Git показывает файлы только этого проекта. Если в списке весь рабочий стол, остановитесь: выбран слишком широкий каталог. Не продолжайте массовое добавление файлов.
До первого коммита создайте .gitignore под используемые технологии. Пример для небольшого Python/JavaScript-проекта:
.env
.env.*
!.env.example
.venv/
__pycache__/
node_modules/
dist/
В .env.example допускаются только демонстрационные значения без действующих ключей. .gitignore не удаляет секрет из уже существующего коммита и не скрывает файлы от всех программ на компьютере. Если ключ попал в историю или на сервер, сначала отзовите его у провайдера. Поведение шаблонов описано в справочнике gitignore.
Вариант B: существующий репозиторий
Запустите Git: Clone из палитры команд, вставьте URL нужного репозитория, выберите родительскую папку и откройте результат. Не нажимайте Initialize Repository повторно: история уже скачана вместе с проектом.
Приватный репозиторий требует доступа к аккаунту или организации. Если ссылка открывается в браузере, это ещё не доказывает, что Git использует ту же учётную запись. Порядок клонирования и работы с remotes есть в документации VS Code.
Как сделать первый коммит через VS Code
Сохраните изменения и откройте Source Control. Нажмите на файл, чтобы просмотреть diff. Затем добавьте нужный файл в Staged Changes кнопкой +, введите понятное сообщение и выполните Commit.
Стадия staging определяет состав коммита. Это удобно, когда вы одновременно исправили код и случайно изменили настройки: не обязательно сохранять их одним пакетом. Не используйте Stage All, пока не просмотрели весь список.
Для нового учебного проекта тот же результат дают команды:
git add README.md .gitignore
git diff --cached
git commit -m "Add project description and ignore rules"
git status
git diff --cached показывает именно подготовленные изменения. При отсутствии дальнейших правок git status должен сообщить о чистом рабочем дереве. Порядок подготовки и сохранения изменений подробно разобран в главе Git о записи изменений.
Как подключить GitHub и выполнить push
В новом локальном репозитории VS Code может предложить Publish to GitHub. Перед подтверждением выберите видимость и ещё раз проверьте содержимое: публичный репозиторий доступен посторонним. Войдите через официальный браузерный процесс авторизации.
Альтернатива: создайте пустой репозиторий на GitHub и добавьте его как remote. Ниже учебный шаблон; замените YOUR_ACCOUNT своим аккаунтом и YOUR_REPOSITORY точным именем. Не выполняйте его в проекте с уже настроенным origin.
git remote -v
git remote add origin https://github.com/YOUR_ACCOUNT/YOUR_REPOSITORY.git
git branch --show-current
git push -u origin main
Последняя команда предполагает, что текущая ветка называется main и первый коммит уже создан. Для другого имени ветки используйте его. Если удалённый репозиторий уже содержит историю, сначала согласуйте её с локальной; не решайте конфликт через принудительный push.
GitHub не принимает обычный пароль аккаунта для Git-операций по HTTPS. Используйте предложенный браузерный вход через менеджер учётных данных, подходящий токен или SSH. Не помещайте токен прямо в URL репозитория: он может оказаться в истории команд и конфигурации. Варианты перечислены в документации GitHub об аутентификации.
Ошибки, которые часто принимают за неправильную настройку
| Сообщение или симптом | Что оно означает |
|---|---|
Author identity unknown |
Не задано имя или email автора коммита |
not a git repository |
Терминал открыт не в репозитории |
remote origin already exists |
Remote уже добавлен; сначала посмотрите git remote -v |
src refspec main does not match any |
Нет первого коммита либо ветка называется иначе |
Permission denied (publickey) |
Для SSH не найден подходящий ключ или нет доступа |
non-fast-forward |
На сервере есть история, которой нет в локальной ветке |
| Commit выполнен, на GitHub ничего нет | Коммит локальный; нужен успешный push |
Кнопка Sync не равна Save: она может получать и отправлять изменения. Перед первой синхронизацией поймите, какая ветка и какой удалённый репозиторий выбраны.
Для проверки настройки измените одну строку README, сохраните отдельный коммит, выполните push и убедитесь, что на GitHub появились этот коммит и его содержимое. После этого Git можно использовать как контрольные точки перед задачами Codex, а не как аварийную кнопку после большой непроверенной правки.