Gitリポジトリに変更されたファイルがたくさんあり、それらの多くはxmlファイルです。 xmlファイルのみの変更を元に戻す(変更をリセットする)にはどうすればよいですか?
返信ありがとうございますが、私にとって最も正確な解決策を見つけました。
git diff --name-only -- '*.xml' | sed 's, ,\\&,g' | xargs git checkout --
sedは、xargsを悩ませていたスペースをエスケープするユーザーであり、すべてが非常に高速かつ正確に機能しています。
find
またはsed
は必要ありません。gitが理解するようにワイルドカードを使用できます(シェルに依存しません)。
git checkout -- "*.xml"
引用符は、実行前にシェルがコマンドを現在のディレクトリ内のファイルのみに展開するのを防ぎます。
シェルグロブ拡張を無効にすることもできます(bashを使用):
set -f
git checkout -- *.xml
もちろん、これはあなたの変更を取り返しのつかないほど消去します!
find . -name '*.xml' -print0 | xargs -0 git checkout HEAD
または、システムにfind
とxargs
がない場合は同等のもの。あるいは単に git checkout HEAD **/*.xml
zsh
またはこの形式の要求グロブを備えた他のシェル。