私はパーティーに遅れていることを知っていますが、これが私の答えです。
@Joakimが言ったように、ファイルを無視するには、以下のようなものを使用できます。
# Ignore everything
*
# But not these files...
!.gitignore
!someFile.txt
しかし、ファイルがネストされたディレクトリにある場合、手動でルールを記述するのは少し難しいです。
例えば、我々はすべてのファイルをスキップしたい場合はgit
、プロジェクトではなくa.txt
に位置していますaDir/anotherDir/someOtherDir/aDir/bDir/cDir
。すると、.gitignore
こんな感じになります
# Skip all files
*
# But not `aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt`
!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
上記の .gitignore
ファイルは、すべてのディレクトリとファイルをスキップします!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
お気づきかもしれませんが、これらのルールを定義することは困難です。
このハードルを解決するため、ルールを生成するgit-do-not-ignoreという名前のシンプルなコンソールアプリケーションを作成しました。私は詳細な手順とともにgithubでプロジェクトをホストしました。
使用例
java -jar git-do-not-ignore.jar "aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt"
出力
!aDir/
aDir/*
!aDir/anotherDir/
aDir/anotherDir/*
!aDir/anotherDir/someOtherDir/
aDir/anotherDir/someOtherDir/*
!aDir/anotherDir/someOtherDir/aDir/
aDir/anotherDir/someOtherDir/aDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/
aDir/anotherDir/someOtherDir/aDir/bDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/
aDir/anotherDir/someOtherDir/aDir/bDir/cDir/*
!aDir/anotherDir/someOtherDir/aDir/bDir/cDir/a.txt
こちらにも簡単なウェブ版があります
ありがとうございました。