何にマークしました--assume-unchanged
か?そのオプションを使用して私が隠したものを見つける方法はありますか?
私は経由掘りをした.git/
ディレクトリと私は期待するもののように見えるが、それはどこかでなければならないことは何も表示されません。数週間前にこの方法でマークしたことを忘れていたので、今後の開発者のためにこれらの詳細を文書化する必要があります。
何にマークしました--assume-unchanged
か?そのオプションを使用して私が隠したものを見つける方法はありますか?
私は経由掘りをした.git/
ディレクトリと私は期待するもののように見えるが、それはどこかでなければならないことは何も表示されません。数週間前にこの方法でマークしたことを忘れていたので、今後の開発者のためにこれらの詳細を文書化する必要があります。
回答:
使用できます git ls-files -v
。印刷される文字が小文字の場合、ファイルは「変更されていない」とマークされます。
変更されていないファイルのみを印刷するには、次のコマンドを使用します。
git ls-files -v | grep '^[[:lower:]]'
怠惰なプログラマーを受け入れるには、これをgitエイリアスに変えます。.gitconfig
ファイルを編集して、次のスニペットを追加します。
[alias]
ignored = !git ls-files -v | grep "^[[:lower:]]"
入力git ignored
すると、次のような出力が得られます。
h path/to/ignored.file
h another/ignored.file
[alias]
のセクション私.gitconfig
:ignored = !git ls-files -v | grep "^[[:lower:]]"
git ls-files -v `git rev-parse --show-toplevel` | grep "^[a-z]"
git ls-files -v | grep "^[a-z]"
私見、次のようにgit hidden
マークされたファイルに適しています--assume-unchanged
:
git config --global alias.hidden '!git ls-files -v | grep "^[a-z]"'
ここに私が持っている関連するエイリアスのリストがあります~/.gitconfig
:
[alias]
hide = update-index --assume-unchanged
unhide = update-index --no-assume-unchanged
unhide-all = update-index --really-refresh
hidden = !git ls-files -v | grep \"^[a-z]\"
ignored = !git status -s --ignored | grep \"^!!\"
サブディレクトリで動作し、引数をサポートするには:
hidden = "!f(){ git -C \"$GIT_PREFIX\" ls-files -v \"$@\" | grep \"^[a-z]\";}; f"
ignored = "!f(){ git -C \"$GIT_PREFIX\" status -s --ignored \"$@\" | grep \"^!!\";}; f"
例えば:
# cd target
# git ignored classes
私の場合、ほとんどの隠しファイルはフラグh
でマークされていますが、のマニュアルによると実際には他にもいくつかのフラグがありますgit-ls-files
-v
:
-v Similar to -t, but use lowercase letters for files that are marked as assume unchanged (see git-update-index(1)).
についてgit ls-files
-t
:
This option (-t) identifies the file status with the following tags (followed by a space) at the start of each line: H cached S skip-worktree M unmerged R removed/deleted C modified/changed K to be killed ? other
hidden = "!f() { git ls-files -v \"$@\" | grep \"^[a-z]\"; }; f"
とignored = "!f() { git status -s --ignored \"$@\" | grep \"^!!\"; }; f"
。これにより、たとえば、git ignored -- PATH1 PATH2
特定のパスで無視されたファイルのみを一覧表示できます(無視されたファイルが多数ある場合に役立ちます)。
このコマンドは、私にとってより一貫して機能します。「想定されていない」と表示されているファイルのみを印刷します。
git ls-files -v|grep "^h"
私はさまざまな環境でこれを何度も使用してきましたが、完全に機能します。
grep "^h"
単一引用符の代わりにします