如何在Git中提交整个文件夹?

66

这里有一个文件夹,里面包含很多 .java 文件。

我该如何将这个文件夹进行 Git 提交呢?

如果我执行以下命令

git add folder_name
git commit folder_name -m "commit operation"

我将查看这些消息 没有要提交的更改,但存在未跟踪的文件(使用"git add"来跟踪)


2
дҪ жңүд»»дҪ•.gitignoreжҲ–зұ»дјјзҡ„ж–Ү件йҳ»жӯўиҜҘж–Ү件еӨ№иў«ж·»еҠ еҲ°зҙўеј•еҗ—пјҹ - laalto
你使用的是哪个操作系统?它是否具有不区分大小写的文件系统?Git在其核心上是区分大小写的。因此,如果文件系统上的foldername实际上被称为FolderName,那么git add foldername将不会添加其中的文件。路径必须与文件系统上使用的大小写匹配。 - John Szakmeister
7个回答

106

您不需要“提交文件夹” - 您可以像您已经做的那样添加文件夹,然后简单地提交所有更改。命令应为:

您不需要“提交文件夹” - 您添加文件夹后,只需提交所有更改即可。 命令应为:

git add foldername
git commit -m "commit operation"

仍然显示相同的消息:"nothing added to commit but untracked fils present (use "git add" to track)"。 - Miyazaki
那么你一定做错了什么——也许你已经添加并提交了这个文件夹? - devrobf
7
文件夹内必须有文件,否则 Git 不会提交该文件夹本身。 - zero8

12

在上面的回答中,再补充一点:

如果你想提交类似于上述的文件夹

git add foldername
git commit -m "commit operation"

要添加文件夹,您需要在与该文件夹相同或更高级别的级别上。

例如:App/Storage/Emails/email.php

如果您正在尝试添加“Storage”文件夹,但是在 email.php 文件中工作,则除非您已经'更改目录'(cd ../)回到与存储文件夹本身相同级别或更高级别,否则您将无法添加“Storage”文件夹。


10

当你在Git中“添加”东西时,你将它添加到暂存区。当你提交时,你将提交暂存区中的内容,这意味着你可以一次只提交一部分更改过的文件。

在您的情况下,您希望将文件夹添加到暂存区,然后进行普通提交:

$ git add foldername
$ git commit -m 'Helpful commit message'

仍然显示相同的消息。 "nothing added to commit but untracked fils present (use "git add" to track)" - Miyazaki
你是否指定文件夹的完整路径? - Martin Bean

3
为了执行整个文件夹的部署,您需要输入以下命令:
    $git add .

这个周期将会添加文件夹中的所有文件。


2
那将会添加每个文件夹。 - Ray

2
假设我已经使用git add命令添加了许多文件夹,但是想要将每个文件夹单独提交,每次提交一个文件夹:
git commit -m "Updating contents of 1 folder" folder_name/\*

1
我遇到了同样的问题。在文件夹名称后面加上斜杠对我有效。
例如:git add foldername/

1

或者更好的方法是将文件夹拖放到您在git浏览器中打开的存储库中。

  1. 在Web门户网站中打开您的存储库,您将看到所有文件的列表。如果您刚刚创建了repo,并使用README进行初始化,则只会看到README列表。

  2. 打开要上传的文件夹。将其拖放到浏览器中的列表中。请参见此处的图像here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接