しばらく前に、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
特別な文字でマークされた「変更なしと仮定」および「スキップワークツリー」ファイルを表示します。 「skip-worktree」ファイルにはS
のマークが付いています。
Edit: @ 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
に渡して元に戻します@ 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)
Tortoise Gitを使用している場合:
TortoiseGit > Check for modifications
を選択しますShow ignore local changes flagged files
のみをチェックしてください。無視したファイル(またはフォルダーを右クリックした場合は無視したすべてのファイル)が表示されます。Unflag as skip-worktree and assume-unchanged
を選択します