gitignore中,如何屏蔽整个目录Pods,但是保留Pods下的子目录B

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/madongchunqiu/article/details/45600729

被git玩傻了,感觉必须要记下来。。。


结论

我讨厌结论放在最后的文章,就写在这里了:

如果要屏蔽目录/A(及其所有子文件子目录),但是需要将/A/B给管理起来,那么必须先把/A给管理起来再说


环境

mac OS X Yosemite 10.10.1

xcode 6.3.1


原.gitignore

项目中用cocoaPods管理了第三方库,因此以前一直都是屏蔽掉Pods这个目录的

#.gitignore
# ignore cocoaPods
/Pods


新.gitignore

新的需求是需要管理某个私有pod:B。至于为何一定要让B被管理起来,又是另一个故事了。

#.gitignore
# ignore cocoaPods
/Pods
!/Pods/B/


Trick在哪

新的.gitignore只加了一行,看起来我这篇文章就是个傻X,但是我必须要申明,难点不在这个.gitignore本身,而在git的行为。[注:我之前也曾按照网上的文章捣鼓了各种方式,什么先屏蔽所有文件,然后逐个打开需要管理的文件目录;什么一层目录一层目录的写,什么将每个目录分别列出来;什么开目录,关目录下的文件;等等等,都无效,表现为要么会添加整个/Pods目录,要么会屏蔽整个/Pods目录


如果你只是改了.gitignore,然后用git status查看,会发现一点用都没有,你会说我这篇文章是个垃圾。


但是,请先将Pods中除了B目录外别的东西统统移走,并commit;再将刚才移走的东西放回来;然后你就会发现,目的达到了。


我只能说,git好厉害啊~







结论

直接翻到最后看结论的同学,我将结论放在最前了,请看文中的红色高亮字体


猜你喜欢

转载自blog.csdn.net/madongchunqiu/article/details/45600729