Git管理下にあるファイルを管理外にして、かつそれらのファイルを.gitignoreに追加したい
.gitignoreファイルを編集
gitignore
.DS_Store
UserInterfaceState.xcuserstate
既存のファイルを管理外にする
この操作自体でファイルは消えない。
bash
git rm --cached
bash
find . -type f -name .DS_Store | xargs -n 1 git rm --cached
find . -type f -name UserInterfaceState.xcuserstate | xargs -n 1 git rm --cached
あとは add, commit, push
省略
まとめてやる版 - 既に commit までしてしまった場合 → rm --cached
(1) gitignore に入っているが その前に add + commit してしまったファイルを一覧する
bash
git ls-files -ci --exclude-standard
(2) それをまとめて index から削除
bash
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
この操作でファイル自体は消えない
(3) あとは add, commit, push
まとめてやる版 - add のみの場合 → restore --staged
(1) 一覧する
bash
git diff --cached --name-only --diff-filter=ACMR | git check-ignore --stdin
(2) stage から外す
bash
git diff --cached --name-only --diff-filter=ACMR | git check-ignore --stdin | xargs -r git restore --staged