Могу ли я получить список файлов, помеченных --предположим-без изменений?



что я отметил как --assume-unchanged? Есть ли способ узнать, что я спрятал, используя эту опцию?



я копал через .git/ каталог и не вижу ничего, что выглядит так, как я ожидал, но это должно быть где-то. Я забыл, что я отметил таким образом несколько недель назад, и теперь мне нужно документировать эти детали для будущих разработчиков.

375   4  
git

4 ответов:

можно использовать git ls-files -v. Если символ напечатан в нижнем регистре, файл помечается как предполагаемый-без изменений.

для печати только те файлы, которые не изменились используйте:

git ls-files -v | grep '^[[:lower:]]'

чтобы обнять вашего ленивого программиста, превратите это в git alias. Отредактируйте свой .gitconfig файл для добавления этого фрагмента:

[alias]
    ignored = !git ls-files -v | grep "^[[:lower:]]"

теперь печатать git ignored даст вам выход такой:

h path/to/ignored.file
h another/ignored.file

Один Лайнер

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

эта команда работает более стабильно для меня. Он будет печатать только те файлы, которые перечислены как "предположим-без изменений".

git ls-files -v|grep "^h"

я использовал это много раз в разных средах, и это работает прекрасно.

решение PowerShell, не используя grep

git ls-files -v | sls -pattern ^h -casesensitive

Comments

    Ничего не найдено.