为了账号安全,请及时绑定邮箱和手机立即绑定

我可以得到标记为-假定不变的文件列表吗?

我可以得到标记为-假定不变的文件列表吗?

Git
米琪卡哇伊 2019-11-04 15:41:35
我标记--assume-unchanged为什么?有什么办法可以找出我使用该选项所藏的东西吗?我翻遍了.git/目录,看不到任何看起来像我期望的东西,但它一定在某个地方。我已经忘记了几周前以这种方式标记的内容,现在我需要为以后的开发人员记录这些详细信息。
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

您可以使用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


查看完整回答
反对 回复 2019-11-04
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

一线

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

关于文件状态

对我来说,大多数隐藏文件都用flag标记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


查看完整回答
反对 回复 2019-11-04
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

这个命令对我来说更加一致。它将仅打印列为“假定未更改”的文件。


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

我已经在不同的环境中使用了很多次,并且效果很好。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 465 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信