93

我在将文件夹及其所有子目录添加到我的 git 存储库时遇到问题。在进行了一些谷歌搜索后,我意识到这是一个非常受欢迎的问题,并且我尝试了每个建议都没有运气,特别是来自git-add 手册页的建议。我什至试过git add -A没有成功。为简单起见,假设我将 git 存储库初始化为Dir1. 然后我有以下文件目录结构。

Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt

我的真实文件有跨越 5-6 级深度的子​​目录,那么是否有一个 git 命令可以将每个子目录中的所有文件添加到我的存储库中?现在,当我从手册页中提出建议时,git add Dir1/\*我可以Dir2在我的仓库中看到,但它显示为绿色文件夹,我无法打开它,这让我相信其中的所有文件/文件夹都Dir2没有添加。任何帮助将不胜感激。我是一个新的 git 用户(使用不到一周),所以尽量保持你的指示在初学者的水平。

4

8 回答 8

120

做,

git add .

在存储库的根目录中。它会添加一切。如果你这样做git add *,它只会添加文件*点。单点是指目录。

如果您的目录或文件在上述命令之后没有被添加到 git index/repo 中,请记得检查它是否在.gitignore文件中被 git 标记为忽略。

于 2013-01-31T07:56:26.327 回答
24

简单的解决方案:

git rm --cached directory
git add directory
于 2018-04-18T08:29:40.270 回答
17

如果子目录本身是 git 存储库 - 即 .has .git 目录 - 使用ls -a.

要删除,请转到子目录和rm .git -rf.

于 2016-08-10T22:20:20.793 回答
6

也很挣扎,但输入正确

git add -f ./JS/*

其中 JS 是我的文件夹名称,其中包含子文件夹和文件

于 2015-12-07T21:02:28.883 回答
1

我不能确定是否是这种情况,但对我来说似乎是个问题是在某些子目录中有 .gitignore 文件。同样,我不能保证这一点,但在这些被删除后一切正常。

于 2015-02-06T01:03:44.257 回答
0

最有可能的.gitignore 文件正在发挥作用。请注意,.gitignore 文件不仅可以出现在 repo 的根级别,还可以出现在任何子级别。您可以从根级别尝试此操作以找到它们:

寻找 。-名称“.gitignore”

然后检查结果以查看可能阻止添加子目录的结果。

也可能涉及子模块。检查“.gitmodules”文件的违规目录。

于 2016-06-02T23:04:56.103 回答
0

我之前看到过这个问题,当我尝试添加的(子)文件夹的名称以“_Something_”开头时

我删除了下划线,它起作用了。检查您的文件夹是否包含可能导致问题的字符。

于 2016-06-16T21:37:30.260 回答
0

如果某人git add .不工作(在我的情况下也是如此),请使用git add ./*包含所有子目录中的所有文件。我的目录结构是:

MainDirectory
|_.git
|_README
|_folder1
|   |_file1
|   |_file2
|   |_subfolder1
|   |    |_file3
|   |    |_file4
|   |_subfolder2
|        |_file5
|        |_file6
|_folder2 
|   |_file1
|   |_file2
|   |_subfolder1
|   |    |_file3
|   |    |_file4
|   |_subfolder2
|        |_file5
|        |_file6
|_otherfiles

在仅添加当前级别的文件时,doinggit add ./*包括一个级别或更多级别内的所有内容。git add .

于 2021-05-26T15:26:47.097 回答