如何将文件和文件夹添加到 GitHub 存储库中?

Posted

技术标签:

【中文标题】如何将文件和文件夹添加到 GitHub 存储库中?【英文标题】:How do I add files and folders into GitHub repos? 【发布时间】:2012-02-05 05:54:03 【问题描述】:

我在 GitHub 上创建了一个帐户——我是新用户——我在添加文件时遇到了问题。我添加了readme.txt。此外,我还有 3 个其他 php 文件和一个包含图像的文件夹。

如何添加文件和文件夹?我用git pull 尝试过,因为git push origin -u master 向我显示了一个错误。

【问题讨论】:

试过official git tutorial?这是一开始就介绍的。 我推荐ProGit这本书,在线版免费progit.org/book 注意:自 2012 年 12 月起,您可以直接通过 GitHub Web 界面创建文件。见my answer below。 【参考方案1】:

您可以使用git add 添加文件,例如git add READMEgit add <folder>/*,甚至git add *

然后使用git commit -m "<Message>" 提交文件

终于git push -u origin master推送文件了。

当您进行修改时,运行 git status,它会为您提供已修改文件的列表,使用 git add * 添加它们,或者您可以单独指定每个文件,然后是 git commit -m <message>,最后是 git push -u origin master

示例 - 假设您创建了一个文件 README,运行 git status 给您

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   README

运行git add README,文件被暂存以进行提交。然后再次运行git status,它应该会给你 - 文件已添加并准备好提交。

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   README
#

nothing added to commit but untracked files present (use "git add" to track)

然后运行git commit -m 'Added README'

$ git commit -m 'Added README'
[master 6402a2e] Added README
  0 files changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 README

最后,git push -u origin master 推送远程分支master 为仓库origin

$ git push -u origin master
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 267 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To xxx@xxx.com:xxx/xxx.git
   292c57a..6402a2e  master -> master
Branch master set up to track remote branch master from origin.

文件已成功推送到远程仓库。

运行git pull origin master 以确保您已吸收任何上游更改

$ git pull origin master
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 4), reused 7 (delta 3)
Unpacking objects: 100% (8/8), done.
From xxx.com:xxx/xxx
 * branch            master     -> FETCH_HEAD
Updating e0ef362..6402a2e
Fast-forward
 public/javascript/xxx.js |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
 create mode 100644 README

如果您不想将上游更改与本地存储库合并,请运行 git fetch 以获取更改,然后运行 ​​git merge 以合并更改。 git pull 只是 fetchmerge 的组合。

我个人使用 gitimmersion - http://gitimmersion.com/ 来了解 git 的曲线,这是一个分步指南,如果您需要一些文档和帮助

【讨论】:

git add --all folder/ 对我来说比 git add folder/* 工作得更好 这会递归添加所有文件和文件夹吗? git add &lt;folder&gt;/* 也添加了新文件。【参考方案2】:

对于 Linux 和 MacOS 用户:

    首先在 github 上创建存储库 (Name=RepositoryName)。 打开终端并创建新目录 (mkdir NewDirectory)。 将您的 ProjectFolder 复制到此 NewDirectory。 将当前工作目录更改为 NewDirectory。 运行这些命令
      git 初始化 git add ProjectFolderName git commit -m "第一次提交" git远程添加源https://github.com/YourGithubUsername/RepositoryName.git git push -u origin master

【讨论】:

【参考方案3】:

请注意,自 2012 年 12 月上旬起,您可以创建 new files directly from GitHub

ProTip™:您可以仅使用 URL 预先填写文件名字段。 在 URL 末尾键入 ?filename=yournewfile.txt 将使用名称 yournewfile.txt 预填充文件名字段。

【讨论】:

如何上传文件,比如图片? @DrewBaker 这里描述的机制是用于创建文本文件。对于图片,您仍然需要克隆一个 GitHub 存储库,在本地添加图片,提交并推送。 感谢并 +1 提示“直接从 GitHub 创建新文件”! 我不相信 Github Web UI 提供了一种添加文件夹的方法,而不是添加简单的文本文件,如自述文件降价。 我认为问题在于如何从您的计算机上传文件,而不是如何创建文件。【参考方案4】:

如果你想添加一个空文件夹,你可以在你的文件夹中添加一个“.keep”文件。

这是因为 git 不关心文件夹。

【讨论】:

正是我正在寻找的答案。 详细说明:Git 无法添加完全空的目录。通过将 .gitkeep 文件放在这样一个空目录中,git 现在可以跟踪这个文件夹。 PS:.gitkeep 不是 Git 的一个特性,而是一个workaround 为我工作,谢谢。但我对此有点不高兴...... :) 但让我开心【参考方案5】:

您需要将存储库签出到本地计算机上。然后您可以在本地计算机上更改该文件夹。

git commit -am "added files"

该命令会将所有文件提交到 repo。

git push origin master

这会将您的主分支(我假设是您正在使用的分支)中的所有更改推送到远程存储库源(在本例中为 github)

【讨论】:

【参考方案6】:

简单的解决方案:

git init
git add =A
git commit -m "your commit"
git push -u origin master

如果您想将文件夹添加到现有的 repo ..然后将文件夹添加到本地项目代码

git rm --cached ./folderName
 git add ./folderName

之后

git status
git commit -m "your commit"
git push -u origin master

【讨论】:

【参考方案7】:

将目录添加到 github 时,使用“ls -a”检查该目录是否不包含 .git 文件,如果它确实删除了它。当您尝试在 git 中添加该目录时,目录中的 .git 文件会导致问题

【讨论】:

【参考方案8】:

在这里查看我的答案:https://***.com/a/50039345/2647919

“或者,最好只是将文件夹“拖放”到您在 git 浏览器中打开的存储库中。

在门户网站中打开您的存储库,您将看到所有文件的列表。如果您刚刚创建了 repo,并使用 README 启动,您将只会看到 README 列表。

打开您要上传的文件夹。在浏览器中拖放列表。见图片here。”

【讨论】:

【参考方案9】:

我在 Windows 上使用 VS SSDT。我开始了一个项目并设置了本地版本控制。后来我安装了 git 并创建了一个 Github 存储库。一旦我在 Github 上获得了我的 repo,当我点击“发布到 Github”按钮时,当它向我询问 URL 时,我抓取了 URL 并将其放入 VS。

【讨论】:

【参考方案10】:

将目录更改为主文件夹。然后“混帐添加。”命令将起作用。

【讨论】:

【参考方案11】:

对我来说,我有一个包含未跟踪文件和子文件夹的文件夹,拯救我生命的解决方案是:

git add --all myfolder/

此解决方案使所有文件和子文件夹都被跟踪

【讨论】:

【参考方案12】:

我知道你来自哪里。

拖放功能的解决方案可能不复存在。发生这种情况时请参阅以下链接: https://www.reddit.com/r/github/comments/meuxtg/github_drag_and_drop_not_working/

如果有人想避免使用 shell 和所有命令并希望有一个 UI 来执行此操作,Github Desktop 是前进的方法之一。

安装和使用 Github Desktop 的步骤:

我假设你知道本地 repo 和远程 repo 之间的区别

    安装Github Desktop 使用 github 桌面在您的硬盘驱动器上本地创建存储库。这将自动创建 .git 和 .gitattributes 等文件。它还要求创建一个 README.md 文件,最好的做法是创建并编辑它,以告知读者您的项目概述、安装步骤等。README.md 在 Markdown 中呈现,也可以呈现 html。在此处查看有关 Markdown 的更多信息:Markdown Cheatsheet guide 将您要上传的所有文件夹和文件(基本上正确的术语是“推送”)复制并粘贴到这个新创建的本地存储库中。请注意目录结构,因为完全相同的目录结构将复制到您的远程存储库中。 转到 github 桌面,只要将文件粘贴到本地 repo 中,您就会在此处看到它们的更改。您需要做的就是通过注释提交这些更改。这将是您对 repo 的“首次或初始提交”。 下一个 Github 存储库将询问您是否要将这些发布到其远程存储库。点击“发布” 注意发布只是一次性操作。以后您对本地存储库所做的任何进一步更改都将在 github 桌面中看到,您需要再次遵循 "Commit local->Fetch from remote->Push to Remote. 的循环。是唯一一个不需要进入 git 分支等机制的项目的开发人员。 要验证您的存储库是否已发布,请远程登录到您在网络上的 github 配置文件并查看您的存储库。这是您使用 Github 桌面从本地存储库有效创建的远程存储库。

【讨论】:

以上是关于如何将文件和文件夹添加到 GitHub 存储库中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将屏幕截图添加到 github 存储库中的 README?

如何在 Github 存储库中添加多个项目文件夹

将目录添加到 .gitignore 后从远程存储库中删除目录

什么是 GitHub 存储库中的“通过上传添加文件”提交消息?

文件未添加到 Github 上的存储库 - 存储库显示为空

如何将具有特定扩展名的文件添加到化石存储库中?