1. ホーム
  2. git

[解決済み] .gitignoreに追加した後、リモートリポジトリからディレクトリを削除する

2022-03-14 14:28:35

質問

あるディレクトリをコミットしてgithubにプッシュしました。その後 .gitignore ファイルに無視すべきディレクトリを追加しました。すべてうまくいくのですが、(今は無視されている)ディレクトリがgithub上に残っています。

githubとリポジトリ履歴からそのディレクトリを削除するにはどうすればよいですか?

解決方法は?

のルールは .gitignore ファイルは、追跡されていないファイルにのみ適用されます。 このディレクトリの下にあるファイルはすでにリポジトリにコミットされているので、ステージを解除してコミットを作成し、それを GitHub にプッシュしなければなりません。

git rm -r --cached some-directory
git commit -m 'Remove the now ignored directory "some-directory"'
git push origin master

リポジトリの履歴を書き換えない限り、履歴からファイルを削除することはできません。他の誰かがあなたのリポジトリで作業していたり、複数のコンピューターから使用している場合は、この方法をとるべきではありません。 それでも行いたい場合は git filter-branch を実行すると、履歴が書き換わります。 そのための有用なガイドがここにあります .

さらに git rm -r --cached some-directory のようなものになります。

rm 'some-directory/product/cache/1/small_image/130x130/small_image.jpg'
rm 'some-directory/product/cache/1/small_image/135x/small_image.jpg'
rm 'some-directory/.htaccess'
rm 'some-directory/logo.jpg'

rm は、リポジトリに関するgitからのフィードバックです。ファイルはまだ作業ディレクトリにあります。