# Добавление файла в репозиторий

Вы можете загрузить и зафиксировать существующий файл в репозиторий в GitHub командной строке или используя её.

## Добавление файла в репозиторий на GitHub

Файлы, которые вы добавляете в репозиторий через браузер, ограничены на 25 МиБ один файл. Вы можете добавлять большие файлы, до 100 МиБ каждого, через командную строку. Дополнительные сведения см. в разделе ["Добавление файла в репозиторий" с помощью командной строки](#adding-a-file-to-a-repository-using-the-command-line). Чтобы добавить файлы больше 100 МиБ, нужно использовать Хранилище больших файлов Git. Дополнительные сведения см. в разделе [Сведения о больших файлах на GitHub](/ru/repositories/working-with-files/managing-large-files/about-large-files-on-github).

Можно загрузить до 100 файлов GitHub одновременно.

Если в репозитории есть защищенные ветви, вы не можете изменять или отправлять файлы в таких ветвях с помощью GitHub. Вы можете использовать GitHub Desktop, чтобы перенести изменения в новую ветвь и зафиксировать их. Дополнительные сведения см. в разделе \[AUTOTITLE и [Сведения о защищенных ветвях](/ru/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)]\(/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop).

В репозитории могут быть включены наборы правил push-уведомлений. Наборы правил push-уведомлений могут блокировать создание нового файла в репозитории на основе определенных ограничений. Наборы правил push-уведомлений применяются ко всей сети вилки репозитория. Это означает, что все наборы правил push-уведомлений, настроенные в корневом репозитории, также применяются к каждому вилку репозитория. Дополнительные сведения см. в разделе [Сведения о наборе правил](/ru/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets#about-rulesets).

Ваш репозиторий может быть защищен защитой push-уведомлений. С помощью push-защиты GitHub блокирует загрузку файла в репозиторий, если в нем есть поддерживаемый секрет, например токен. Перед попыткой повторной отправки файла удалите секрет из файла. Дополнительные сведения см. в разделе \[AUTOTITLE и [Работа с защитой push-уведомлений в пользовательском интерфейсе GitHub](/ru/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/push-protection-in-the-github-ui)]\(/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/push-protection-in-the-github-ui#resolving-a-blocked-commit).

> \[!NOTE] Защита от отправки файлов в веб-интерфейсе в настоящее время находится в Публичный предварительный просмотр и подлежит изменению.

> \[!WARNING]
> Используйте Git для отправки файлов в репозиторий, если необходимо применить логику в `.gitattributes` файле. Например, автоматическое преобразование конец строки. Загрузка файла через GitHub веб-интерфейс игнорирует `.gitattributes`.

1. На GitHubперейдите на главную страницу репозитория.
2. Над списком **файлов выберите раскрывающееся меню "Добавить файл** " и нажмите кнопку **"Отправить файлы**". Кроме того, вы можете перетащить файлы в браузер.

   ![Снимок экрана: главная страница репозитория. Над списком файлов, кнопкой с меткой "Добавить файл", описывается темно-оранжевым цветом.](/assets/images/help/repository/upload-files-button.png)
3. Чтобы выбрать файлы, которые нужно отправить, перетащите файл или папку или щелкните **нужные файлы**.
4. В поле "Фиксация сообщения" введите короткое понятное сообщение фиксации, описывающее изменения, внесенные в файл. В таком сообщении фиксацию можно отнести к нескольким авторам. Дополнительные сведения см. в разделе [Создание фиксации с несколькими авторами или от имени организации](/ru/pull-requests/how-tos/commit-changes/creating-a-commit-with-multiple-authors).
5. Под полями сообщения о фиксации укажите, куда следует добавить фиксацию: в текущую ветвь или в новую. Если текущей ветвью является ветвь по умолчанию, нужно создать новую ветвь для фиксации, а затем создать запрос на вытягивание. Дополнительные сведения см. в разделе [Создание запроса на включение изменений](/ru/pull-requests/how-tos/create-pull-requests/creating-a-pull-request).

   ![Снимок экрана: запрос на вытягивание GitHub с переключателем для фиксации непосредственно в главной ветви или создания новой ветви. Выбрана новая ветвь.](/assets/images/help/repository/choose-commit-branch.png)
6. Нажмите кнопку " **Предложить изменения**".

## Добавление файла в репозиторий с помощью командной строки

Вы можете загрузить существующий файл в репозиторий GitHub через командную строку.

> \[!TIP]
> Вы также можете [добавить существующий файл в репозиторий с GitHub сайта](/ru/repositories/working-with-files/managing-files/adding-a-file-to-a-repository).

В этой процедуре предполагается, что вы уже сделали следующее:

* [Создан репозиторий на GitHub](/ru/repositories/creating-and-managing-repositories/creating-a-new-repository)или есть существующий репозиторий, принадлежащий другому пользователю, в который вы хотите внести свой вклад.
* [клонировали репозиторий на локальном компьютере](/ru/repositories/creating-and-managing-repositories/cloning-a-repository).

> \[!WARNING]
> Никогда `git add`, `commit`или `push` конфиденциальная информация, например пароли или ключи API, в удаленный репозиторий. Если вы уже добавили эту информацию, см [. раздел AUTOTITLE](/ru/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository).

1. На вашем компьютере переместите файл, в который хотите загрузить GitHub , в локальную директорию, созданную при клонировании репозитория.

2. Откройте <span class="platform-mac">Терминал</span><span class="platform-linux">Терминал</span><span class="platform-windows">GIT Bash</span>.

3. Измените текущий рабочий репозиторий на локальный проект.

4. Подготовьте файл для фиксации в локальном репозитории.

   ```shell
   $ git add .
   # Adds the file to your local repository and stages it for commit. Чтобы отменить подготовку файла, используйте команду "git reset HEAD ВАШ-ФАЙЛ".
   ```

5. Зафиксируйте подготовленный файл в локальном репозитории.

   ```shell
   $ git commit -m "Add existing file"
   # Commits the tracked changes and prepares them to be pushed to a remote repository. Чтобы удалить эту фиксацию и изменить файл, используйте команду "git reset --soft HEAD~1", а затем выполните фиксацию и добавьте файл еще раз.
   ```

6. [Отправьте изменения](/ru/get-started/using-git/pushing-commits-to-a-remote-repository) в локальном репозитории в GitHub.com.

   ```shell
   $ git push origin YOUR_BRANCH
   # Pushes the changes in your local repository up to the remote repository you specified as the origin
   ```

## Дополнительные материалы

* [Добавление локально размещенного кода в GitHub](/ru/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github)