Как загрузить файл в репозиторий GitHub

Кнопка Add file на странице репозитория GitHub решает задачу загрузки файла за пару кликов, но только если файл не превышает лимит веб-интерфейса и у вас есть права на запись в репозиторий. Когда загрузка через браузер обрывается ошибкой или нужно отправить сразу десятки файлов из локального проекта, понадобится работа через Git в терминале или приложение GitHub Desktop.

Ниже разберём все рабочие способы: через сайт github.com, через командную строку с git add и git push, а также через графический клиент. Отдельно разберём типичные ошибки — отказ в доступе, превышение лимита размера и конфликты версий.

Что нужно подготовить перед загрузкой

Перед отправкой файла убедитесь, что у вас есть аккаунт GitHub и права на запись в целевой репозиторий. Для чужого репозитория прямая загрузка невозможна — сначала делается fork (копия в ваш аккаунт), и изменения предлагаются через pull request.

Если планируете работать через терминал, на компьютере должен быть установлен Git. Проверить его наличие можно командой:

git --version
  • 📁 Аккаунт на GitHub и доступ к репозиторию (владелец или collaborator)
  • 🔑 Настроенная аутентификация: парольный вход для веб-версии, персональный токен или SSH-ключ для Git
  • 💻 Установленный Git, если загрузка идёт через командную строку
  • 📦 Файл допустимого размера — через веб-интерфейс действует ограничение на размер одного файла
⚠️ Внимание: GitHub блокирует push файлов размером более 100 МБ. Для крупных бинарных файлов (видео, архивы, модели) используйте Git LFS (Large File Storage) — обычный коммит такого файла будет отклонён сервером.

Способ 1: загрузка через веб-интерфейс GitHub

Самый быстрый вариант, не требующий установки программ. Откройте нужный репозиторий в браузере и нажмите кнопку Add fileUpload files над списком файлов. Откроется страница загрузки, куда можно перетащить файлы мышкой или выбрать их через диалог проводника.

После выбора файлов прокрутите страницу вниз до блока Commit changes. Введите короткое описание изменения (сообщение коммита) и нажмите зелёную кнопку Commit changes. Файл сразу появится в репозитории.

☑️ Загрузка файла через браузер

Выполнено: 0 / 5

Через веб-интерфейс можно загружать и целые папки — просто перетащите директорию в область загрузки. Структура вложенных каталогов сохранится.

Способ 2: загрузка через Git в командной строке

Этот способ подходит, когда файлов много, они большие или вы ведёте проект локально. Сначала клонируйте репозиторий на компьютер:

git clone https://github.com/имя-пользователя/имя-репозитория.git

Скопируйте нужный файл в папку клонированного репозитория, затем выполните три команды: добавление в индекс, создание коммита и отправку на сервер.

git add имя-файла

git commit -m "Добавлен файл"

git push origin main

Обратите внимание на имя ветки: в новых репозиториях основная ветка обычно называется main, в старых может быть master. Точное имя видно на главной странице репозитория или в выводе команды git branch.

📊 Как вы чаще загружаете файлы на GitHub?
Через веб-интерфейс
Через Git в терминале
Через GitHub Desktop
Через IDE (VS Code и др.)

Способ 3: загрузка через GitHub Desktop

GitHub Desktop — официальное графическое приложение для Windows и macOS. Оно подходит тем, кто не хочет запоминать команды терминала. После установки войдите в аккаунт, клонируйте репозиторий через меню File → Clone repository.

Скопируйте файл в локальную папку репозитория — приложение автоматически увидит изменение и покажет его во вкладке Changes. Введите описание в поле Summary, нажмите Commit to main, а затем кнопку Push origin вверху окна. Файл уйдёт на сервер.

Сравнение способов загрузки

СпособУстановка ПОМного файловКрупные файлыКому подходит
Веб-интерфейсНе требуетсяОграниченноДо лимита браузерной загрузкиНовичкам, разовые правки
Git в терминалеGitДа, без ограниченийДо 100 МБ, больше — через LFSРазработчикам
GitHub DesktopКлиент DesktopДаДо 100 МБ, больше — через LFSТем, кто предпочитает GUI
IDE (VS Code)Редактор + GitДаКак в GitРаботающим в редакторе
Как загрузить файл больше 100 МБ

Установите Git LFS командой git lfs install, затем отметьте тип файлов: git lfs track "*.zip". После этого добавляйте и отправляйте файлы обычными командами git add / commit / push — LFS автоматически перенаправит крупные объекты в отдельное хранилище. Учтите, что у бесплатных аккаунтов есть квота на хранилище и трафик LFS.

Типичные ошибки и их решение

Самая частая проблема — ошибка аутентификации при git push. GitHub не принимает обычный пароль от аккаунта для операций через HTTPS: вместо него нужно создать персональный токен доступа в настройках аккаунта (Settings → Developer settings → Personal access tokens) или настроить SSH-ключ.

Вторая распространённая ситуация — отказ с сообщением о том, что удалённая ветка содержит изменения, которых нет у вас локально. Это значит, что кто-то (или вы сами с другого устройства) уже отправил коммиты в репозиторий. Сначала выполните git pull, разрешите возможные конфликты и только потом повторите push.

⚠️ Внимание: не загружайте в репозиторий пароли, ключи API и файлы с секретными данными. Даже если удалить такой файл следующим коммитом, он останется в истории Git. Если секрет уже попал в репозиторий — считайте его скомпрометированным и немедленно смените.
  • 🚫 Ошибка 403 / access denied — нет прав на запись или неверный токен
  • 📏 File exceeds size limit — файл больше 100 МБ, нужен Git LFS
  • 🔄 Rejected: non-fast-forward — сначала выполните git pull
  • 🌿 Wrong branch — проверьте имя ветки командой git branch
⚠️ Внимание: команда git push --force перезаписывает историю на сервере и может уничтожить чужие коммиты. В общих репозиториях используйте её только если точно понимаете последствия.

Проверка результата

После любого способа загрузки откройте страницу репозитория в браузере и обновите её. Файл должен появиться в списке, а над списком отобразится ваше сообщение коммита и время его создания. Кликните по файлу, чтобы убедиться, что содержимое отображается корректно.

Если файл на месте, но содержимое отличается от ожидаемого, возможно, вы закоммитили старую версию. Проверьте локальную копию, внесите правку и отправьте изменения повторно — каждый новый push создаёт отдельный коммит, и история изменений сохраняется во вкладке Commits.

Частые вопросы

Можно ли загрузить файл в чужой репозиторий?

Напрямую — нет, если владелец не выдал вам права collaborator. Стандартный путь: сделайте fork репозитория, загрузите файл в свою копию и отправьте pull request владельцу оригинала.

Какой максимальный размер файла можно загрузить на GitHub?

Через веб-интерфейс действует ограничение на размер загружаемого файла, а через Git push сервер отклоняет файлы свыше 100 МБ. Для крупных файлов предназначен механизм Git LFS.

Почему git push просит пароль, но пароль от аккаунта не подходит?

GitHub не поддерживает аутентификацию по паролю для Git-операций. Вместо пароля используйте персональный токен доступа (Personal Access Token) или настройте SSH-ключ и переключите remote на SSH-адрес.

Как загрузить сразу всю папку с файлами?

Через браузер — перетащите папку в область Upload files. Через терминал — скопируйте папку в локальный репозиторий и выполните git add . (точка добавляет все изменения), затем commit и push.

Можно ли удалить файл, который загрузил по ошибке?

Да. В веб-интерфейсе откройте файл и нажмите иконку корзины, либо локально выполните git rm имя-файла, затем commit и push. Учтите: файл останется в истории коммитов, полное удаление из истории требует специальных инструментов вроде git filter-repo.