1. ホーム
  2. git

[解決済み] Git でディレクトリを追跡してファイルを追跡しないようにするには?

2023-02-14 20:06:20

質問

最近 Git を使い始めたのですが、ひとつだけ困っていることがあります。コンテンツを追跡せずにディレクトリを追跡するにはどうしたらよいでしょうか。

例えば、私が作業しているサイトでは、アップロードを許可しています。アップロードディレクトリを追跡して、ブランチなどを作成するときに、その中のファイル(開発ブランチのテストファイルやマスターの実際のファイル)を明らかにしないようにしたいのですが。

私の .gitignore には、次のようなものがあります。

アップロード/*.*

も試しました(これはディレクトリ全体を無視します)。

アップロード/

このディレクトリには、サブディレクトリ(uploads/thumbs/ uploads/videos/ )も含まれることがありますが、これらのファイルを追跡できるようにしたいと思います。

これはGitで可能なのでしょうか?私は答えを見つけることなく、どこでも検索しました。

どのように解決するのですか?

Git はディレクトリを追跡せず、ファイルを追跡します。したがって、これを実現するには、少なくとも一つのファイルを追跡する必要があります。そのため、仮にあなたの .gitignore ファイルがこのようなものだと仮定します。

upload/*

こうすればいいんです。

$ touch upload/.placeholder
$ git add -f upload/.placeholder

を忘れてしまった場合は -f が表示されます。

$ git add upload/.placeholder
以下のパスは、.gitignore ファイルのひとつで無視されます。
アップロード
本当に追加したい場合は -f を使ってください。
fatal: ファイルが追加されていません。

それから、あなたが git status と表示されます。

# masterブランチ上
#
# 初期コミット
#
# 変更点をコミットします。
# (use "git rm --cached ..." to unstage) # (ステージを解除するには、"git rm --cached ..." を使用します)
#
# 新しいファイル: upload/.placeholder
#

明らかにその後にできること。

$ touch upload/images/.placeholder
$ git add -f upload/images/.placeholder