【发布时间】:2019-12-16 12:12:25
【问题描述】:
问题
--cached 标志在通过git filter-branch --index-filter 运行git rm 时有何不同?
git filter-branch --index-filter 'git rm --cached *.ext'
git filter-branch --index-filter 'git rm *.ext'
问题
当我运行git rm --cached *.ext 时,所有*.ext 文件都未跟踪但没有从工作目录中删除(据我了解,这是--cached 标志的目的)
但是,当我尝试追溯运行该命令时,就像
git filter-branch --index-filter 'git rm --cached *.ext'
所有历史 *.ext 文件均未跟踪并且现有 *.ext 文件已从工作目录中删除。
为什么?
没有--cached有什么区别
理论
由于该命令在所有提交上运行,每次运行都没有“工作目录”,因此它还将 HEAD/当前工作目录视为没有工作目录的独立提交。
【问题讨论】:
标签: git