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

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

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

【问题讨论】:

标签: git github


【解决方案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 用户:

  1. 首先在 github 上创建存储库 (Name=RepositoryName)。
  2. 打开终端并创建新目录 (mkdir NewDirectory)。
  3. 将您的 ProjectFolder 复制到此 NewDirectory。
  4. 将当前工作目录更改为 NewDirectory。
  5. 运行这些命令
    1. git 初始化
    2. git add ProjectFolderName
    3. git commit -m "第一次提交"
    4. git远程添加源https://github.com/YourGithubUsername/RepositoryName.git
    5. 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://stackoverflow.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 之间的区别

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

                  【讨论】:

                    猜你喜欢
                    • 2020-10-18
                    • 1970-01-01
                    • 2018-09-02
                    • 2022-11-20
                    • 2016-03-10
                    • 2019-03-06
                    • 1970-01-01
                    • 2021-11-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多