{"meta":{"title":"添加文件到仓库","intro":"你可以在 GitHub 上或使用命令行将现有文件上传并提交到仓库。","product":"存储库","breadcrumbs":[{"href":"/zh/repositories","title":"存储库"},{"href":"/zh/repositories/working-with-files","title":"处理文件"},{"href":"/zh/repositories/working-with-files/managing-files","title":"管理文件"},{"href":"/zh/repositories/working-with-files/managing-files/adding-a-file-to-a-repository","title":"添加文件"}],"documentType":"article"},"body":"# 添加文件到仓库\n\n你可以在 GitHub 上或使用命令行将现有文件上传并提交到仓库。\n\n## 将文件添加到 GitHub 上的仓库\n\n通过浏览器添加到仓库中的文件，每个文件的大小限制为 25 MiB。 您可以通过命令行添加较大的文件，每个文件最大可达 100 MiB。 有关详细信息，请参阅[使用命令行将文件添加到仓库](#adding-a-file-to-a-repository-using-the-command-line)。 若要添加大于 100 MiB的文件，必须使用 Git 大型文件存储。 有关详细信息，请参阅“[关于 GitHub 上的大文件](/zh/repositories/working-with-files/managing-large-files/about-large-files-on-github)”。\n\n你可以同时向 GitHub 上传最多 100 个文件。\n\n如果仓库中有任何受保护分支，则无法使用 GitHub 编辑或上传受保护分支中的文件。 您可以使用 GitHub Desktop 将您的更改转移到新的分支，然后提交它们。 有关详细信息，请参阅 [关于受保护分支](/zh/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches) 和 [在 GitHub Desktop 中提交并审查对项目的更改](/zh/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop)。\n\n存储库可能已启用推送规则集。 基于某些限制，推送规则集可能会阻止在存储库中创建新文件。 推送规则集会应用于存储库的整个分支网络。 这意味着，根存储库中配置的任何推送规则集也会应用于存储库的每个分支。 有关详细信息，请参阅“[关于规则集](/zh/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets#about-rulesets)”。\n\n您的存储库可能有推送保护来确保安全。 借助推送保护， GitHub 如果文件包含受支持的机密（例如令牌），则会阻止将文件上传到存储库。 在尝试再次上传文件之前，应从文件中删除机密。 有关详细信息，请参阅 [通过 GitHub UI 使用推送保护功能](/zh/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/push-protection-in-the-github-ui) 和 [通过 GitHub UI 使用推送保护功能](/zh/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/push-protection-in-the-github-ui#resolving-a-blocked-commit)。\n\n> \\[!NOTE] Web UI 中文件上传的推送保护目前为 公开预览，可能会有变动。\n\n> \\[!WARNING]\n> 如果需要在 `.gitattributes` 文件中应用逻辑，请使用 Git 将文件推送到存储库。 例如，行尾的自动转换。 通过 GitHub Web 界面上传文件将忽略 `.gitattributes`。\n\n1. 在 GitHub 上，导航到存储库的主页面。\n2. 在文件列表上方，选择“添加文件”下拉菜单，然后单击“上传文件”。 也可将文件拖放到浏览器中。\n\n   ![存储库的主页的屏幕截图。 在文件列表上方，标记有“添加文件”的按钮以深橙色标出。](/assets/images/help/repository/upload-files-button.png)\n3. 若要选择要上传的文件，请拖放文件或文件夹，或单击“选择文件”。\n4. 在“提交消息”字段中，输入简短、有意义的提交消息，以描述对文件的更改。 您可以在提交消息中将提交归于多个作者。 有关详细信息，请参阅“[创建包含多个作者的提交或代表某个组织创建提交](/zh/pull-requests/how-tos/commit-changes/creating-a-commit-with-multiple-authors)”。\n5. 在提交消息字段下面，确定是要将提交添加到当前分支还是新分支。 如果当前分支是默认分支，则应选择为提交创建新分支，然后创建拉取请求。 有关详细信息，请参阅“[创建拉取请求](/zh/pull-requests/how-tos/create-pull-requests/creating-a-pull-request)”。\n\n   ![GitHub 拉取请求的屏幕截图，其中显示了一个单选按钮，用于直接提交到主分支或创建新分支。 已选择“新建分支”。](/assets/images/help/repository/choose-commit-branch.png)\n6. 单击“提议更改”。\n\n## 使用命令行提交文件到仓库\n\n可以使用命令行将现有文件上传到存储库 GitHub 。\n\n> \\[!TIP]\n> 还可以 [从 GitHub 网站将现有文件添加到存储库](/zh/repositories/working-with-files/managing-files/adding-a-file-to-a-repository)。\n\n此过程假设您已经：\n\n* [在 GitHub](/zh/repositories/creating-and-managing-repositories/creating-a-new-repository) 上创建一个仓库，或者有一个你要参与的由其他人所拥有的现有仓库\n* [在计算机上本地克隆存储库](/zh/repositories/creating-and-managing-repositories/cloning-a-repository)\n\n> \\[!WARNING]\n> 切勿将敏感信息（例如密码或 API 密钥）`git add`、`commit` 或 `push` 到远程存储库。 如果已添加此信息，请参阅 [从存储库中删除敏感数据](/zh/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository)。\n\n1. 在您的计算机上，将您想要上传到 GitHub 的文件移动到克隆该存储库时创建的本地目录中。\n\n2. 打开<span class=\"platform-mac\">终端</span><span class=\"platform-linux\">终端</span><span class=\"platform-windows\">Git Bash</span>。\n\n3. 将当前工作目录更改为您的本地仓库。\n\n4. 将要提交的文件暂存到本地仓库。\n\n   ```shell\n   $ git add .\n   # Adds the file to your local repository and stages it for commit. 若要取消暂存文件，请使用“git reset HEAD YOUR-FILE”。\n   ```\n\n5. 提交暂存在本地仓库中的文件。\n\n   ```shell\n   $ git commit -m \"Add existing file\"\n   # Commits the tracked changes and prepares them to be pushed to a remote repository. 要删除此提交并修改文件，请使用 'git reset --soft HEAD~1' 并再次提交和添加文件。\n   ```\n\n6. 将本地存储库中的[更改推送](/zh/get-started/using-git/pushing-commits-to-a-remote-repository)到 GitHub.com。\n\n   ```shell\n   $ git push origin YOUR_BRANCH\n   # Pushes the changes in your local repository up to the remote repository you specified as the origin\n   ```\n\n## 其他阅读材料\n\n* [将本地托管代码添加到 GitHub](/zh/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github)"}