如何将文件和文件夹添加到 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 README
、git 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
只是 fetch
和 merge
的组合。
我个人使用 gitimmersion - http://gitimmersion.com/ 来了解 git 的曲线,这是一个分步指南,如果您需要一些文档和帮助
【讨论】:
git add --all folder/
对我来说比 git add folder/*
工作得更好
这会递归添加所有文件和文件夹吗?
git add <folder>/*
也添加了新文件。【参考方案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?
将目录添加到 .gitignore 后从远程存储库中删除目录