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


248

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

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


9
尝试过官方的git教程?这在开始时就涉及了。
jweyrich 2012年

2
我推荐ProGit这本书的在线版本是免费的progit.org/book
house9,2012年

注意:自2012年12月起,您可以直接通过GitHub Web界面创建文件。请参阅下面的答案
VonC

Answers:


371

您可以使用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推送远程分支。masterorigin

$ 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的曲线,这是一个逐步指南,如果您需要一些文档和帮助


8
git add --all folder/对我来说,比我做得更好git add folder/*
2014年

4
是否会递归添加所有文件和文件夹?
Alix

git add <folder>/*也添加新文件。
Danijel


20

请注意,自2012年12月上旬以来,您可以直接从GitHub创建新文件

建立新档案

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

d


2
如何上传文件,例如图片?
德鲁·贝克

@DrewBaker这里描述的机制是用于创建文本文件的。对于图片,您仍然需要克隆GitHub存储库,在本地添加图片,提交并推送。
VonC

感谢您和+1提示“直接从GitHub创建新文件”!
zeFree

我不认为Github Web UI除了添加诸如自述文件降价之类的简单文本文件之外,没有提供添加文件夹的方法。
Devy 2014年

我认为问题在于询问如何从您的计算机上传文件,而不是如何创建文件。
艾丽卡

8

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

这是因为git不在乎文件夹。


正是我要找的答案。
Alexis Wilke

6

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

git commit -am "added files"

该命令会将所有文件提交到存储库。

git push origin master

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


4

简单的解决方案:

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

如果要将文件夹添加到现有存储库中,则将文件夹添加到本地项目代码中

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

之后

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

2

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


0

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

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

在Web门户中打开存储库,您将看到所有文件的列表。如果您刚刚创建了该存储库并以自述文件启动,则只会看到自述文件列表。

打开您要上传的文件夹。在浏览器中拖放列表。请在此处查看图片。”


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.