1

重複の可能性:
Git - 複雑なディレクトリ構造内のファイルをホワイトリストに登録する

私はgitリポジトリにegという名前のファイルだけを追跡させたいと思っていますが、SOURCES他のすべては無視されます(たとえば、各SOURCESファイルにその起源がリストされているpdfファイルのツリーを取ります)。最も簡単なショットは

*
!SOURCES

.gitignore。ただし、 eg の除外はA/SOURCESによって上書きされ、*を使用する必要がありますgit add -f。強制追加を必要とせずに.gitignore名前付きファイルを除くすべてを無視するように変更するにはどうすればよいですか?SOURCES

編集ディレクトリ構造が固定されていないため、ここに投稿された解決策は役に立ちません。つまり、SOURCESファイルを含む新しいディレクトリを手動で追加する必要はありません.gitignore...

4

1 に答える 1

1

だけを使用してこれを達成することはできません.gitignore

Git はパスを追跡しません。オブジェクト (~ ファイル) のみを追跡します。

では、表を逆にしてみませんか。

git add -f -- */*/SOURCES */SOURCES

また

shopt -s globstar
git add -f -- **/SOURCES

または、大きな銃を手に入れましょう:

git add -f -- $(find -type f -name SOURCES)

あるいは

find -type f -name SOURCES -exec git add -f -- {} \+

テストされていないアイデアおそらく、このようなものが pre-commit フックにあるのではないでしょうか?


更新自動化をさらに進めるためのアイデア:

これを .git/config に追加します

[alias]
ac = "!_() { git add -f -- */*/SOURCES && git commit \"$@\"; }; _"

今、あなたはただ言うことができます

git commit -m 'like you usually work'

自動的に追加されます*/*/SOURCES

于 2012-10-08T15:11:54.550 に答える