新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


software:git:gitignore-different-merge


.gitignoreが異なるマージ(又は.gitignoreを変更)した時の処理

以前の記事で、ブランチ毎に.gitignoreを別の内容にする方法について紹介した。

このような状況で、別ブランチからマージを実行(又は.gitignoreを変更)した場合は、無視したいファイルがリポジトリ内に残っているので、不要なファイルを削除してスッキリさせる方法の備忘録を残す。

無視したいファイルをリポジトリから削除

.gitignoreが変更されても、既にリポジトリに登録されているファイルは無視されないので、無視したいファイルを下記コマンドで管理対象から外す。

$ git rm --cached `git ls-files --full-name -i --exclude-standard`

又は

$ git rm --cached `git ls-files --full-name -i --exclude-from=.gitignore`

管理対象でないファイルを削除

下記コマンドで不要なファイルを確認

$ git clean -n -d -x

続いて下記コマンドで実際に削除

$ git clean -f -d -x
  • -nオプションでは確認のみで、-fオプションで実際に削除する
  • -xオプションで.gitignoreに指定されたファイルも削除対象とする
  • -dオプションでディレクトリも含む

関連記事

参考

software/git/gitignore-different-merge.txt · 最終更新: 2018/06/30 08:44 by yoko