我在将文件夹及其所有子目录添加到我的git存储库时遇到问题。我意识到这是一个非常受欢迎的问题,在做了一些谷歌搜索,我已经尝试了每个建议没有运气,特别是man page on 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用户(不到一周的使用时间),所以请尽量保持初学者的指示。
答案 0 :(得分:91)
DO,
git add .
在存储库的根目录中。它会添加一切。如果您执行git add *
,则只会添加*
个文件。单点指的是目录。
如果您的目录或文件在上述命令之后未添加到git index / repo,请记得检查.gitignore文件中的git是否将其标记为已忽略。
答案 1 :(得分:9)
如果子目录本身是git存储库,也可能遇到问题 - 即.has .git目录 - 请与ls -a
一起检查。
要删除转到子目录rm .git -rf
。
答案 2 :(得分:7)
简单解决方案:
git rm --cached directory
git add directory
答案 3 :(得分:5)
也很挣扎,但打字正确
git add -f ./JS / *
其中JS是我的文件夹名称,其中包含子文件夹和文件
答案 4 :(得分:1)
我不能确定是否是这种情况,但对我来说似乎有问题的是在某些子目录中使用.gitignore文件。再一次,我不能保证这一点,但在删除之后一切正常。
答案 5 :(得分:0)
很可能.gitignore文件 s 正在发挥作用。请注意,.gitignore文件不仅可以出现在repo的根级别,还可以出现在任何子级别。您可以从根级别尝试查找它们:
找到。 -name" .gitignore"然后检查结果以查看可能阻止添加子目录的结果。
也可能涉及子模块。检查" .gitmodules"的违规目录。文件。
答案 6 :(得分:0)
我之前看到过这个问题,当我试图添加的(子)文件夹的名称以“_Something _”开头时
我删除了下划线并且它有效。检查您的文件夹中是否包含可能导致问题的字符。
答案 7 :(得分: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
执行 git add ./*
包括一个或更多级别深度内的所有内容,而 git add .
仅添加当前级别的文件。