2

gitリポジトリがありgit status、ディレクトリにまだファイルを追加していない場合は、すべてのディレクトリ(および以下のすべて)を無視したいと思います。に追加する/*と、.gitignoreほとんどトリックが実行されます。私は新しいディレクトリを作成し、それらにファイルを置くことができ、git status完全に気づかないでしょう。

そこで、新しいディレクトリを作成し、そこに「directory/file」というファイルを配置します。次にgit add directory、、、、このディレクトリ内に「directory/newfile」などの新しいファイルgit commitを作成します。問題は、新しいファイルが表示されないことです。git status

に追加!/*/*してみました.gitignoreが、私が知る限り何もしませんでした。git status追跡されたファイルのないディレクトリを無視しながら、追跡された(追加された)ファイルのあるディレクトリに新しいファイルを表示するにはどうすればよいですか?

4

3 に答える 3

2

他の回答は、gitがディレクトリを追跡していないことについて語っていますが、これは正しいですが、質問には答えていません。

まず、/*ディレクトリとその内容だけでなく、リポジトリのルートにあるファイルも無視します。すべてを無視します。これがあなたの望むものかどうかわかりません。そうでない場合は変更してみてください/*/

第二にgit add directory、無視パターンでは機能しませんでした。git addパスが無視され、使用する必要があると言って失敗します-f。はい、ディレクトリ (およびその内容) は agit add -f directoryのみで追加できます。

ディレクトリを追加してコミットしたので、そこに新しいファイルを配置しても、もちろん無視されているため、git status はそれを表示しません。Git は、追跡されていないファイルを探すためにディレクトリにステップ インしません。ただし、もちろん、既に追跡されているファイルへの変更は git ステータスになります。また、git add directory/newfile使用に関する同じメッセージで失敗します-f

したがって、ディレクトリを追加するたびに、その特定のディレクトリを明示的に無視しないようにする必要もあります。!/directoryしたがって、.gitignore のようなものを追加する必要があります。

于 2011-10-08T21:34:06.607 に答える
0

Git はディレクトリ自体を保存しません。ファイル パスはノード データの属性です。ファイルがない場合、ノードはありません。 git add directory「ディレクトリ」が空の場合、どのような場合でも効果はありません。git status無視した場合を除いて、新しく作成されたファイルは追跡されていないと表示されます。.gitignoregit add directory/newfilenameが明示的な追加をブロックするかどうかはわかりませんが、そうではないと思います。その場合は、.gitignore を変更してそのディレクトリを許可する必要があります (オンラインで構文に関する多くの情報があります)。

于 2011-10-08T07:50:40.233 に答える
0

Git はディレクトリを追跡できません。空のディレクトリは保存されません。そのため、「空の」フォルダが必要なプロジェクトで「.keep」という名前のファイルがよく見られます。

于 2011-10-08T08:54:37.560 に答える