.gitignore不适用于** / * .xyz

时间:2016-11-19 09:57:27

标签: git gitignore

我的git项目包含我不想被推送到存储库的.cas文件。我因此添加了一行

**/*.cas

到我的.gitignore文件,但.cas文件仍会显示在git status中。 阅读了许多其他帖子后,我检查了.gitignore条目没有尾随空格,并且它们确实有unix行更改说明符。

然后按照此处的建议运行以下命令: .gitignore does not work

git rm -r --cached .
git add .

但徒劳无功! git status仍会报告,例如。

new file:   calc/2_preliminary/1_CFD/7_Calc_Fluent/03_stationary_vof_stationary/mesh_04/run_10000.cas

有什么想法吗?我真的很感激。

更新

.gitignore文件内容:

calc/
0_BSc_Alvarez/
calc/0_Test/
documentation/Tutorial_Fluent/
literature/
thunderbird/
**/.idea/
.zim
**/ND800_*
**/*.cas
**/*.dat
**/*.cdat
**/*.uns
**/*.msh
**/*.bak

git版本是1.7.1

2 个答案:

答案 0 :(得分:6)

你在评论中说你使用git v1.7.1。旧的git版本的问题。 **/模式仅在1.8.2中添加,因此您的git只是不理解它。此外,你真的不需要**/部分,你应该只使用

*.cas

答案 1 :(得分:4)

您的说明部分正确。你跑了:

git rm -r --cached .

删除了Git跟踪的不需要的文件。但由于某种原因,你决定再次使用

添加它
git add .

这导致不需要的文件现在显示为 new 文件:

new file:   calc/2_preliminary/1_CFD/7_Calc_Fluent/03_stationary_vof_stationary/mesh_04/run_10000.cas

它是一个新文件的原因是因为你已经告诉Git忘了它。

正确的做法是仅在回购中暂存您真正想要的文件,这将排除以.cas结尾的文件。

<强>更新

尝试运行git rm,但这次只包含.cas个文件:

git ls-files | grep '\.cas$' | xargs git rm

现在,如果您运行git status,您应该只看到.cas个文件被删除。好吧,它们实际上并没有从您的本地文件系统中删除,但它们将从存储库中删除。