.gitignore忽略文件,即使没有规则指定它
这是我的.gitignore忽略文件,即使没有规则指定它,git,gitignore,Git,Gitignore,这是我的.gitignore文件: smarty/templates_c config.codekit components/**/styles/ components/**/js/ !components/root/js-dev/plugin/select2-4.0.3/dist/js/ !components/root/js-dev/plugin/chartjs/ .sass-cache/ /node_modules/ /dbv-parkrooau/ /pma-parkrooau/ coun
.gitignore
文件:
smarty/templates_c
config.codekit
components/**/styles/
components/**/js/
!components/root/js-dev/plugin/select2-4.0.3/dist/js/
!components/root/js-dev/plugin/chartjs/
.sass-cache/
/node_modules/
/dbv-parkrooau/
/pma-parkrooau/
count.php
因此,如果我在components/foo/js dev/main.js
中进行更改,那么.gitignore
将跟踪其更改,并将其包含在我的存储库中;这很好
但是,我有一个文件位于components/theygo/js dev/shoppingcart.js
-.gitignore
不跟踪此文件的更改,原因我无法理解components/theygo/js-dev/main.js
工作正常,components/root/js-dev/main.js
,以及我迄今为止创建的所有其他JavaScript文件,只有这一个文件,我不确定为什么
如果我从我的.gitignore
中删除components/**/js/
,它会跟踪文件,但也会跟踪js
子目录中components
内任何目录中的所有文件
如果我在这一行加上:
!components/theygo/js-dev/shoppingcart.js
它正确地跟踪文件
有人能解释为什么会发生这种情况,以及我能做些什么来最好地解决这个问题,而不是添加一个脏的包含语句吗?您的子目录中有.gitignore吗?
基于你的.gitignore,我也尝试了确切的文件夹结构,这个文件将被正确跟踪第一次提交并推送你所有的当前更改。 然后,您必须删除所有跟踪的文件并将其添加回 使用以下命令
git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
在~/.gitu global中有什么吗?另外,您可能希望运行“git check ignore-v components/theygo/js dev/shoppingcart.js”,它应该告诉您是哪个规则导致忽略。@ptyx我尝试运行该命令,但没有返回任何结果。如果
components/theygo/js dev/shoppingcart.js
和components/theygo/js dev/main.js
不受规则components/**/js/
的影响,则以同样的方式。不知何故,我怀疑它们不在同一路径上。暗中拍摄:在不区分大小写的文件系统中,同一目录中是否有另一个大小写相同的文件?选中ignore empty表示文件未被忽略,因此我们至少在行为上存在不一致性(我假设通过“.gitignore不跟踪此文件的更改”您的意思是git状态不会显示它,除非您显式地“git添加”它?@ptyx否,不幸的是,js-dev
目录中只有shoppingcart.js
、page2.js
和viewproduct.js
。。。另外两个都可以正常工作……不,不,.gitignore
在任何子目录中,其方式将影响shoppingcart.js
,即组件中没有任何内容,它们也没有js dev
。