让我们说我有一个名为REPO的目录,其中包含一个已启动的git repo,在该目录中,有两个名为sub1
,sub2
的子目录和一个& #34; 1.cpp
"文件。
sub1
有" 2.cpp
"文件和其他文件
sub2
有" 3.cpp
"文件和其他文件,所以它就像这个图
现在我只希望我的存储库中的这些文件没有任何目录
1.cpp
2.cpp
3.cpp
我知道如何使用.cpp
忽略除.gitignore
个文件以外的所有文件,但我不希望sub1
和sub2
包含在我的回购中,I只想要其中的cpp
个文件,我已经搜索了很多但无法找到答案,我希望我能正确解释。
答案 0 :(得分:1)
你可以移动它们:
cd /path/to/REPO
git mv sub1/2.cpp .
git mv sub2/3.cpp .
如果您不需要,请删除子文件夹。
但实际上,OP意味着:
我只是希望Git包含所有子目录中的所有.cpp文件,并将它们添加到存储库中。
知道如何使用.gitignore忽略除.cpp文件以外的所有文件但我不希望sub1和sub2包含在我的repo中,我只想要其中的cpp文件
如果您尚未添加任何文件,则.gitignore
将
**
!**/
!*.cpp
然后git add .
只包含cpp文件
您忽略所有文件(**
),然后排除文件夹(!**/
):这样您就可以从gitignore规则中排除.cpp
个文件(!*.cpp
)。
那是因为it is not possible to re-include a file if a parent directory of that file is excluded。
答案 1 :(得分:0)
在存储库中添加文件夹后,使用git将文件移动到repo目录级别
git add sub1
git mv sub1/2.cpp .
git mv sub2/3.cpp .
考虑到它是空的,你不需要删除目录。添加后提交。