【发布时间】:2016-03-23 17:24:40
【问题描述】:
我开始使用 git cherrypick;因此,我现在(经常)面临着给我很多标记为“被我们删除”的文件的情况。
我看到this other question,上面提到了如何使用git ls-files --deleted 获取平面文件列表;然后可以通过管道传输到 xargs rm。
问题是:--deleted 没有列出那些“被我们删除”的文件。
那么,长话短说:删除“被我们删除”文件的最简单/直接的方法是什么?
(我真的很喜欢 git ls-files 方法;因为它不需要 sed/awk 魔法;所以也不用担心得到正确的引号......)
更新;只是为了解释为什么这不是一些“XY问题”的情况:
- 其实我用的是git svn;连接到一些后端 SVN 服务器
- SVN 主干包含目录 A、B、C
- 我正在对影响所有三个目录的 trunk 进行更改
- 但是:我运行cherry-pick ...的git实际上类似于在SVN服务器上创建的“产品分支”。这些“产品”分支确实只包含子集(所以一个有 A 和 B;另一个有 B 和 C)。
- 我努力了;但我真的无法同时创建一个包含 SVN 主干和 SVN 产品分支的 git svn 克隆
【问题讨论】:
-
“被我们删除”究竟是什么意思?
-
git ls-files --deleted | xargs rm对于需要引用的文件名不安全。只是为了记录。为此,您需要git ls-files -z --deleted | xargs -0 rm。 -
真正的问题是为什么你经常删除你分支上的文件,而其他人正在他们的分支上更改?