[解決済み] .gitignoreに登録されているが、まだリポジトリに残っているファイルを削除するにはどうすればよいですか?
2022-03-20 01:52:59
質問
リポジトリに無視すべきファイルがあり、.gitignoreに追加しましたが、もちろん、リポジトリから削除されません。
そこで質問なのですが、filter-branch を使って履歴を書き換え、これらのファイルを簡単に削除できる魔法のコマンドやスクリプトはないでしょうか?または、単にそれらを削除するコミットを作成するコマンドはありますか?
どのように解決するのですか?
手動でリポジトリから削除することができます。
git rm --cached file1 file2 dir/file3
あるいは、ファイルがたくさんある場合。
git rm --cached `git ls-files -i -c --exclude-from=.gitignore`
しかし、これはWindows上のGit Bashではうまくいかないようです。エラーメッセージが表示されます。次のようにするとうまくいきます。
git ls-files -i -c --exclude-from=.gitignore | xargs git rm --cached
Windows上のPowerShellでは、これはさらにうまく機能します(パスとファイル名のスペースを処理します)。
git ls-files -i -c --exclude-from=.gitignore | %{git rm --cached $_}
これらのファイルなしで履歴を全部書き換えることについて、私は非常に疑問です。
自動
の方法があります。
それに、歴史を書き換えるのは良くないことだと、みんな知っているじゃないですか:)
関連
-
[解決済み] .gitignoreと "以下の未追跡の作業ツリーファイルはチェックアウトで上書きされます"
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み] .gitignoreと.gitkeepの違いは何ですか?
-
[解決済み] Gitでファイルの変更を追跡しない、無視する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】マージの競合が発生した git stash pop の取り消し
-
[解決済み】Git サブモジュール head 'reference is not a tree' エラー
-
[解決済み】GitHubのメッセージの意味: メールのプライバシー制限のためプッシュが拒否されました。
-
[解決済み】GitHub: クローンには成功したが、チェックアウトに失敗した
-
[解決済み] TortoiseGitで「git did not exit cleanly (exit code 128)」というエラーを解決するには?[クローズド]
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] 警告: リモート HEAD は存在しない参照元を参照しているため、チェックアウトできません。
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git リポジトリに既にコミットされているファイルを無視する [重複]。