跳至主要内容

向存储库添加文件

您可以将现有文件上传并提交到 GitHub 上的存储库,或使用命令行。

平台导航

在 GitHub 上向存储库添加文件

通过浏览器添加到存储库的文件每个文件大小限制为 25 MiB。您可以通过命令行添加更大的文件,每个文件最大 100 MiB。有关更多信息,请参阅“使用命令行向存储库添加文件”。要添加大于 100 MiB 的文件,您必须使用 Git 大文件存储。有关更多信息,请参阅“GitHub 上的大文件”。

您可以同时将多个文件上传到 GitHub。

如果存储库有任何受保护的分支,则无法使用 GitHub 编辑或上传受保护分支中的文件。您可以使用 GitHub Desktop 将更改移动到新分支并提交它们。有关更多信息,请参阅“关于受保护分支”和“在 GitHub Desktop 中提交和审查项目更改”。

您的存储库可能启用了推送规则集。推送规则集可能会根据某些限制阻止在存储库中创建新文件。推送规则集适用于存储库的整个 fork 网络。这意味着在根存储库中配置的任何推送规则集也将应用于存储库的每个 fork。有关更多信息,请参阅“关于规则集”。

您的存储库可能受推送保护。使用推送保护,如果文件包含受支持的机密(例如令牌),GitHub 将阻止将文件上传到存储库。您应该在尝试再次上传文件之前从文件中删除机密。有关更多信息,请参阅“在 GitHub UI 中使用推送保护”和“在 GitHub UI 中使用推送保护”。

注意

Web UI 中的文件上传推送保护目前处于公开预览阶段,可能会发生更改。

  1. 在 GitHub 上,导航到存储库的主页。

  2. 在文件列表上方,选择**添加文件**下拉菜单,然后单击**上传文件**。或者,您可以将文件拖放到浏览器中。

    Screenshot of the main page of the repository. Above the list of a files, a button, labeled "Add file," is outlined in dark orange.

  3. 要选择要上传的文件,请拖放文件或文件夹,或单击**选择文件**。

  4. 在“提交消息”字段中,键入简短且有意义的提交消息,描述您对文件所做的更改。您可以在提交消息中将提交归因于多个作者。有关更多信息,请参阅“创建具有多个作者的提交”。

  5. 在提交消息字段下方,决定是将提交添加到当前分支还是添加到新分支。如果当前分支是默认分支,则应选择为提交创建新分支,然后创建拉取请求。有关更多信息,请参阅“创建拉取请求”。

    Screenshot of a GitHub pull request showing a radio button to commit directly to the main branch or to create a new branch. New branch is selected.

  6. 单击**提出更改**。

使用命令行向存储库添加文件

您可以使用命令行将现有文件上传到 GitHub 上的存储库。

此过程假设您已

警告

切勿将敏感信息(例如密码或 API 密钥)git addcommitpush 到远程存储库。如果您已添加此信息,请参阅“从存储库中删除敏感数据”。

  1. 在您的计算机上,将要上传到 GitHub 的文件移动到克隆存储库时创建的本地目录中。

  2. 打开终端终端Git Bash

  3. 将当前工作目录更改为您的本地存储库。

  4. 将文件暂存到本地存储库以进行提交。

    $ git add .
    # Adds the file to your local repository and stages it for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  5. 提交已在本地存储库中暂存的文件。

    $ git commit -m "Add existing file"
    # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  6. 将本地存储库中的更改推送到 GitHub.com

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

进一步阅读