菜鸟问题:如何让.gitignore 重新记录文件?

2015-04-19 19:48:01 +08:00
 xiparos

我的.gitignore文件里面有以下一条记录

//override文件夹里面的内容不忽略,记录下来
!override/

但.gitignore不知道为毛不记录override/classes/ 文件夹下面的所有修改(其他subfolder的修改都记录了),导致其中新创建的类都无法被track到。

我想在.gitignore里面添加一行,类似

//override文件夹里面的内容不忽略,记录下来
!override/
!override/classes/

应该如何告诉git,我更新.gitignore文件了,现在把原来没有track的override/classes/ 文件夹下面的内容重新track一下?

感谢各位git高人指点。

3076 次点击
所在节点    问与答
6 条回复
msg7086
2015-04-19 19:58:48 +08:00
Let me google that for you: /t/145660
superalsrk
2015-04-20 02:37:40 +08:00
额。难道是说 git add . 么。。
xiparos
2015-04-20 20:24:47 +08:00
@msg7086 非常感谢,我现在知道应该怎么写.gitignore里面的规则了。

但问题是,我重新定义了规则之后,怎样告诉git:我的.gitignore已经更新了,现在把原来没有track到的文件track一下?
PS:不会是我重新定义了.gitignore之后,我直接git status,原来没有track的都自动track了吧。。
msg7086
2015-04-20 22:37:24 +08:00
你需要手动 git add 吧。
xiparos
2015-04-20 23:32:30 +08:00
确认是修改完.gitignore,git根据新添加的rules自动track相关的文件

好吧,但我看到了stackoverflow上面说
If you exclude application/, then everything under it will always be excluded (even if some later negative exclusion pattern (“unignore”) might match something under application/).

如果是这样的话,我终于知道为毛我的
override/
!override/classes
不起作用了,我在随后的N行之后发现了下面这样一条规则:
override/classes/*.php。。。那么不论我再怎么添加!xxx规则都无效了。。

好吧,我很弱,想问问如果在这种情况下,我想重新制定一下.gitignore规则,为了可以track所有我想要的文件,那么我是不是应该要
1. 备份一下project和.git文件夹,保留所有原来的git history。
2. 在新的project里面删除.git文件夹,添加新的.gitignore文件,然后重新git init一下,相当于另起炉灶,然后接着commit那些原来不曾track到得文件?

恳请git高手给个意见指导,谢谢大家
xiparos
2015-04-21 04:33:21 +08:00
我在想这时候是不是应该 git rm -r --cached .出场的时候了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/184776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX