[Git].gitignoreで無視したディレクトリの中のサブディレクトリを追跡する

.gitignoreで無視したディレクトリの中のサブディレクトリを追跡する
以下のようなファイル構造の時に、directoryを無視しつつ、subdirectoryだけを追跡したいと考えます。
│ .gitignore
│
└─directory
│ not-important.txt
│
└─subdirectory
important.txt
.gitignoreに以下のように書くと、うまくいきません。
これは、 ディレクトリを無視する構文(/directory/)を使用すると、それ以下のファイルは常に無視をされる ためです
/directory/ !/directory/subdirectory
そのため、 ディレクトリの無視ではなく、ファイルのワイルドカードでの無視 を使用します。
ファイル単位で無視 -> ディレクトリを追跡 という手順を踏むと、うまくいきます。
# ファイル単位で無視 /directory/* # ディレクトリを追跡 !/directory/subdirectory/
git add ., git statusを叩くと、追加されていることが確認できます
>git add .
>git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: .gitignore
new file: directory/subdirectory/important.txt
さらに前の行にて無視されているとき
さらに前の行にて/directoryが無視されているときは、ファイル単位で無視 -> ディレクトリを追跡 を繰り返し行います
# ファイル単位で無視 /* # ディレクトリを追跡 !/directory/ # ファイル単位で無視 /directory/* # ディレクトリを追跡 !/directory/subdirectory/
参考
git - .gitignore exclude folder but include specific subfolder - Stack Overflow