我暂时想为某个提交删除一些文件并运行:git update-index --assume-unchanged file_name
在一堆文件上。
然后我关闭了终端,是否有办法取回我运行git update-index
命令的文件的名称,以便我可以--not-assume-unchanged
在它们上运行?
要进一步扩展 Richard Michael 的答案,您可以简单地在 ls-files -v 输出的行首用 grep 查找小写字母
git ls-files -v|grep ^[a-z]
将只显示您假定未更改的文件
只需在树中的所有文件上运行它。默认是不假设不变。
你为什么首先运行它?如果要从提交中排除文件,只需git add
手动运行所需的文件即可git commit
。如果您将-a
标志传递给,您只会获得所有修改过的文件git commit
,所以不要这样做。
注意,我使用的是git --version
1.8.1.2。
您可以通过以下方式确定为索引中的文件设置的位:git ls-files -v
. assume-unchanged
具有位集的文件具有小写标签。
不要将它与S
对应于skip-worktree
位的标记混淆(看起来s
好像文件也设置了assume-unchanged
位)。
请参阅和选项部分git help update-index
中有关标签本身的讨论。-t
-v
例如:Gemfile
已经skip-worktree
设置,我们还要设置assume-unchanged
。
$ git ls-files -v|grep Gemfile
S Gemfile
$ git update-index --assume-unchanged Gemfile
$ git ls-files -v|grep Gemfile
s Gemfile