使用 .gitignore 将嵌套文件和文件夹列入白名单

Whitelist nested files and folders using .gitignore

我想排除整个 android/ & ios/ 文件夹

我想在其中包含以下文件:

android/settings.gradle
android/app/build.gradle
android/build.gradle
android/app/src/main/java/com/reactnativegoogleadmob/MainApplication.java

ios/Podfile
ios/ReactNativeGoogleAdmob/AppDelegate.h
ios/ReactNativeGoogleAdmob/AppDelegate.m

所以我的 .gitignore 是:

# Remove following directories

android/*
ios/*

# Add following files

!android/settings.gradle
!android/app/build.gradle
!android/build.gradle
!android/app/src/main/java/com/reactnativegoogleadmob/MainApplication.java

!ios/Podfile
!ios/ReactNativeGoogleAdmob/AppDelegate.h
!ios/ReactNativeGoogleAdmob/AppDelegate.m

但它只包含顶级文件,例如:

android/settings.gradle
android/build.gradle
ios/Podfile

我也尝试了 android/**/* & ios/**/* 但它给出了与 android/* & ios/*.

相同的结果

如何包含其余文件?我也尝试过其他解决方案,但遇到了障碍。

您的 .gitignore 文件应该只有这些条目,因为它会递归地忽略 androidios 目录中的文件。

.gitignore

android
ios

感谢 @axiac's answer

我设法让这件事成功了

在阅读下面的解决方案之前先阅读它,因为它解释得比我能解释的要好得多 -

android/*

!android/build.gradle
!android/settings.gradle

!android/app/
android/app/*
!android/app/build.gradle
!android/app/src
android/app/src/*
!android/app/src/main
android/app/src/main/*
!android/app/src/main/java
android/app/src/main/java/*
!android/app/src/main/java/com
android/app/src/main/java/com/*
android/app/src/main/java/com/reactnativegoogleadmob/*
!android/app/src/main/java/com/reactnativegoogleadmob
!android/app/src/main/java/com/reactnativegoogleadmob/MainApplication.java

ios/*

!ios/Podfile

!ios/ReactNativeGoogleAdmob/
ios/ReactNativeGoogleAdmob/*
!ios/ReactNativeGoogleAdmob/AppDelegate.h
!ios/ReactNativeGoogleAdmob/AppDelegate.m