Как закинуть файлы на GitHub: все способы загрузки

Команда git push возвращает ошибку rejected — non-fast-forward — самая частая причина, по которой файлы не попадают в репозиторий GitHub: локальная версия проекта отстаёт от удалённой, и Git отказывается перезаписывать чужие изменения. Прежде чем разбирать способы загрузки, стоит понять, что GitHub предлагает два принципиально разных пути: загрузку прямо через браузер (без установки чего-либо) и работу через Git — систему контроля версий, которая требует первоначальной настройки, но даёт полный контроль над историей изменений.

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

Создание репозитория — первый шаг

Прежде чем закинуть файлы, нужно место, куда их загружать. На GitHub это репозиторий — хранилище проекта с историей изменений. Чтобы создать его, войдите в аккаунт на github.com, нажмите кнопку New (или значок «+» в правом верхнем углу) и выберите New repository.

Укажите имя репозитория — оно станет частью ссылки на проект. Выберите видимость: Public (виден всем) или Private (только вам и приглашённым). Галочка Add a README file создаст стартовый файл описания — это удобно, но учтите: репозиторий сразу получит первый коммит, и при последующей загрузке через Git из пустой локальной папки может потребоваться слияние историй.

  • 📁 Public — код виден всем, подходит для портфолио и open-source
  • 🔒 Private — доступ только по приглашению, для личных и рабочих проектов
  • 📄 README.md — файл описания, отображается на главной странице репозитория
  • 🚫 .gitignore — список файлов, которые Git не должен отслеживать (временные файлы, пароли, сборки)

Способ 1: загрузка файлов через браузер

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

После выбора файлов прокрутите страницу вниз: в поле Commit changes введите короткое описание загрузки (например, «Добавлены исходные файлы проекта») и нажмите зелёную кнопку подтверждения. Через несколько секунд файлы появятся в репозитории.

У браузерного способа есть ограничения. Через веб-интерфейс неудобно загружать много файлов с вложенными папками — структуру каталогов придётся воспроизводить вручную, создавая папки через ввод имени вида папка/файл.txt. Кроме того, есть ограничение на размер отдельного файла при загрузке через сайт; точный лимит указан в официальной документации GitHub и может меняться, поэтому для больших файлов сверьтесь с ней.

⚠️ Внимание: файлы размером более 100 МБ GitHub не принимает в обычные репозитории вовсе — для таких данных существует отдельный механизм Git LFS (Large File Storage). Попытка отправить большой файл обычным способом завершится ошибкой на этапе push.

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

Это основной рабочий метод, который используют разработчики. Сначала установите Git с официального сайта git-scm.com — установщик доступен для Windows, macOS и Linux. После установки проверьте результат, выполнив в терминале или командной строке:

git --version

Если выводится номер версии — всё готово. Теперь откройте терминал в папке с вашими файлами и выполните последовательность команд. Каждая из них отвечает за свой этап: инициализацию локального репозитория, добавление файлов в индекс, создание коммита и отправку на сервер.

git init

git add .

git commit -m "Первый коммит"

git branch -M main

git remote add origin https://github.com/ВАШ_ЛОГИН/ИМЯ_РЕПОЗИТОРИЯ.git

git push -u origin main

Разберём, что делает каждая строка. git init превращает папку в Git-репозиторий. git add . добавляет все файлы в зону подготовки (staging). git commit фиксирует снимок изменений с комментарием. Команда git remote add origin привязывает локальную папку к удалённому репозиторию на GitHub, а git push отправляет коммиты на сервер.

☑️ Загрузка файлов через Git — проверьте себя

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

Авторизация: почему пароль больше не работает

Частая точка отказа у новичков — этап авторизации при первом git push. GitHub отключил вход по паролю аккаунта для операций через Git: вместо пароля требуется персональный токен доступа (Personal Access Token) или вход через менеджер учётных данных.

Токен создаётся в настройках аккаунта: Settings → Developer settings → Personal access tokens. При создании отметьте права repo, чтобы токен позволял работать с репозиториями. Скопируйте его сразу — повторно GitHub его не покажет. Когда Git запросит пароль при push, вставьте токен вместо него.

Альтернатива — установить GitHub CLI или Git Credential Manager (обычно идёт в комплекте с Git для Windows), тогда авторизация пройдёт через браузер в один клик, без ручной работы с токенами.

📊 Какой способ загрузки файлов на GitHub вы используете?
Только через браузер
Командная строка Git
GitHub Desktop
IDE (VS Code и др.)

Способ 3: GitHub Desktop и загрузка из IDE

Если командная строка отпугивает, есть графический клиент GitHub Desktop. Он бесплатен, доступен для Windows и macOS и выполняет те же операции кнопками: клонирование репозитория, коммиты, push. Файлы достаточно скопировать в локальную папку репозитория — программа сама покажет изменения, останется написать описание коммита и нажать Push origin.

Третий вариант — загрузка прямо из среды разработки. В VS Code, например, встроена панель Source Control: она отображает изменённые файлы, позволяет делать коммиты и отправлять их на GitHub без терминала. Для этого папка проекта должна быть инициализирована как Git-репозиторий и привязана к удалённому адресу — те же шаги, что и в разделе выше, но выполняемые через интерфейс.

СпособСложностьКому подходитОграничения
Браузер (Upload files)МинимальнаяРазовая загрузка, новичкиНеудобен для папок и множества файлов
Командная строка GitСредняяРазработчики, регулярная работаТребует установки и настройки авторизации
GitHub DesktopНизкаяТе, кто предпочитает графический интерфейсМеньше гибкости, чем у консоли
IDE (VS Code и др.)НизкаяПрограммисты, работающие в редактореНужна первичная привязка репозитория

Типичные ошибки при загрузке и их решение

Ошибка rejected — non-fast-forward означает, что в удалённом репозитории есть коммиты, которых нет у вас локально — например, вы создали README при создании репозитория на сайте. Решение: сначала подтянуть изменения командой git pull origin main --allow-unrelated-histories, разрешить возможные конфликты и повторить push.

Ошибка remote: Repository not found чаще всего говорит об опечатке в URL репозитория или об отсутствии прав доступа. Проверьте адрес командой git remote -v — он должен точно совпадать со ссылкой на странице репозитория. Если репозиторий приватный, убедитесь, что авторизованы под нужным аккаунтом.

⚠️ Внимание: команда git push --force принудительно перезаписывает удалённую историю. В чужих и совместных репозиториях это может безвозвратно уничтожить чужие коммиты. Используйте её только когда точно понимаете последствия — например, в личном репозитории после осознанной чистки истории.
Что делать, если случайно закинули файл с паролем

Простого удаления файла и нового коммита недостаточно — данные остаются в истории Git. Немедленно смените сам пароль или отзовите скомпрометированный ключ, это главный шаг. Затем историю можно переписать инструментами вроде git filter-repo или BFG Repo-Cleaner и выполнить принудительный push. Для публичных репозиториев считайте, что данные уже скопированы ботами — ротация секретов обязательна.

Обновление файлов после первой загрузки

Дальнейшая работа проще первоначальной настройки. Изменили файлы — выполните три команды:

git add .

git commit -m "Описание изменений"

git push

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

Часто задаваемые вопросы

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

Нет. Для создания репозитория и загрузки файлов требуется аккаунт GitHub. Регистрация бесплатна и занимает пару минут — достаточно email и придуманного пароля.

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

GitHub ограничивает размер отдельных файлов: через сайт действует свой лимит на загрузку, а файлы свыше 100 МБ не принимаются в обычные репозитории вовсе. Для больших бинарных файлов предназначен механизм Git LFS. Актуальные значения лимитов уточняйте в официальной документации GitHub, так как они могут пересматриваться.

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

GitHub не принимает пароль аккаунта для операций через Git. Вместо него нужен персональный токен доступа, который создаётся в разделе Settings → Developer settings → Personal access tokens. Вставьте токен вместо пароля при запросе.

Как загрузить целую папку с вложенными папками через браузер?

Через Add file → Upload files можно перетащить папку целиком — современные браузеры поддерживают загрузку каталогов с сохранением структуры. Если это не сработало, используйте Git или GitHub Desktop: они переносят структуру папок без ограничений.

Что такое коммит и зачем нужно его описание?

Коммит — это зафиксированный снимок изменений с комментарием. Описание помогает вам и другим понять, что и зачем менялось. Пишите коротко и по существу: «Исправлена ошибка авторизации», «Добавлена страница контактов».