回答:
いいえ、リポジトリに既にコミットされているファイルを強制的に削除することはできません。 .gitignore
あなたはする必要がありgit rm --cached
ますが、レポにしたくないファイルを削除します。(おそらくローカルコピーを保持したいがリポジトリから削除したいので--cachedです。)したがって、リポジトリからすべてのexeを削除したい場合は、
git rm --cached /\*.exe
(アスタリスク*はシェルから引用されていることに注意してください-これにより、シェルではなくgitがファイルとサブディレクトリのパス名を展開できます)
git rm /\*.exe
すると、リポジトリ内のすべてのexeが削除されます
git
。
git pull
を実行している他のユーザーには、ファイルが削除されたことが表示されます。
ただし、これらのコミットされたファイルはリポジトリから自動的に削除されますか?
いいえ。既存のものでも.gitignore
、-f
(無視される)ファイルを(強制)フラグでステージングできます。それらのファイルがすでにコミットされている場合、それらは自動的に削除されません。
git rm --cached path/to/ignored.exe
.ideaとターゲットフォルダーを削除する必要があり、すべてのコメントを読んだ後、これは私のために働きました:
git rm -r .idea
git rm -r target
git commit -m 'removed .idea folder'
そしてマスターにプッシュする
.idea
私の問題だったと思います:)
ただし、これらのコミットされたファイルはリポジトリから自動的に削除されますか?
番号。
これを行うための「最良の」レシピはgit filter-branch
、ここに書かれているように使用しています:
git-filter-branchのmanページには、包括的な例が含まれています。
注履歴を書き直すことになります。誤って追加したファイルを含むリビジョンを公開した場合、これらのパブリックブランチのユーザーに問題が発生する可能性があります。それらを通知するか、ファイルを削除する必要がどれほどひどいかを考えてください。
注タグがある場合は、常に--tag-name-filter cat
オプションを使用してくださいgit filter-branch
。痛いことはなく、後で必要になったときに頭痛を軽減できます
--all
を使用して、すべての(ローカル)ブランチを一度に書き換えます
ファイルを削除してコミットした後でも、それらのファイルは履歴に残ります。それらを削除するには、BFG Repo-Cleanerの使用を検討してください。git-filter-branchの代替です。