私は最近gitリポジトリを起動しましたが、.gitignore
ファイルを追加するのを忘れました。初めてコミットした後、リポジトリには無視する必要があるサブディレクトリとファイルがたくさんあります。.gitignore
GitLabやGitHubなどのツールにファイルを省略せずにリポジトリを追加してからプッシュする効率的な方法はありますか?
答え1
作業ディレクトリから無視されたすべてのファイルを削除してもかまいません。次のコマンドは削除のためにコミットされましたが、無視されたすべてのファイルを準備します。
find . -print0 | git check-ignore -z --stdin --no-index | xargs -0 git rm -f -r --cached --ignore-unmatch --
(GNUfind
と最新バージョンであると仮定git
)git check-ignore
。また、無視された他のファイルやディレクトリも削除されます。
これは、現在のディレクトリから始まるすべてのファイルとディレクトリを一覧表示し、無視されるか(コミットされている場合でも)確認し、コミットされているか、追跡されていないかを問わず削除します。
これは.gitignore
ツリー内のすべてのファイルに適用されます(git
設定の他の場所でも可能です)。
変更を追跡してコミットします。変更は新しいコミットなので、強制的にプッシュする必要はありません。無視されたと推定されるファイルへのすべての参照を削除するために履歴を書き換えるのは、やや複雑な作業です。