跳至主要内容

向仓库添加文件

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

平台导航

向 GitHub 上的仓库添加文件

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

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

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

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

注意

推送规则集处于测试阶段,可能会发生变化。

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

注意

Web UI 中的文件上传推送保护目前处于测试阶段,可能会发生变化。

  1. 在 GitHub.com 上,导航到仓库的主页。

  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.com 上的仓库。

此过程假设您已

警告:切勿将敏感信息(例如密码或 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
    

进一步阅读