しばらく前に、git によって追跡されるファイルへの変更を無視するためにこれを行いました。
git update-index --skip-worktree <file>
ここで、実際にそのファイルへの変更をソースにコミットしたいと思います。の影響を元に戻すにはどうすればよいskip-worktree
ですか?
あはは!私は単に欲しい:
git update-index --no-skip-worktree <file>
http://www.kernel.org/pub/software/scm/git/docs/git-update-index.htmlによると、使用
git ls-files -v
特別な文字でマークされた「assume changing」および「skip-worktree」ファイルを表示します。「skip-worktree」ファイルは でマークされていS
ます。
編集:@amacleodが述べたように、すべての隠しファイルをリストするエイリアスを作成することは、覚えておく必要がないようにするための良いトリックです。alias hidden="git ls-files -v | grep '^S'"
.bash_profile で使用します。それはうまくいきます!
スキップ ワークツリーが適用されたすべてのファイルを元に戻したい場合は、次のコマンドを使用できます。
git ls-files -v | grep -i ^S | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-skip-worktree
git ls-files -v
すべてのファイルをステータスとともに出力しますgrep -i ^S
ファイルをフィルタリングし、スキップ ワークツリー (S) のみを選択するか、ワークツリーをスキップして未変更 (s) を想定します。-i は、大文字と小文字を区別しないことを意味します。cut -c 3-
ステータスを削除し、パスのみを残し、3 番目の文字から最後までカットしますtr '\012' '\000'
行末文字 (\012) をゼロ文字 (\000) に置き換えます。xargs -0 git update-index --no-skip-worktree
ゼロ文字で区切られたすべてのパスgit update-index --no-skip-worktree
を undoに渡します@GuidC0DEの回答に基づいて、これがPowershellのバージョンです(私はposh-gitを使用しています)
git update-index --no-skip-worktree $(git ls-files -v | sls -pattern "^S"| %{$_.Line.Substring(2)})
参考までに、ファイルを非表示にする反対のコマンドも示します。
git update-index --skip-worktree $(git ls-files --modified)