【发布时间】:2013-10-14 15:31:20
【问题描述】:
我在尝试 git 的一些示例指令时遇到了这种特殊情况,即当我们执行 git rm * 时,它不会在第一次尝试时删除 .* 文件。
为什么会这样?
mkdir -p test_repo1/folder && cd test_repo1
touch .testfile1 .testfile2 testfile3 folder/testfile4 folder/.testfile5
git init && git add . && git commit -m "test commit"
如果现在我按如下方式执行git rm,我必须再次执行以删除所有文件
$ git rm -r *
rm 'folder/.testfile5'
rm 'folder/testfile4'
rm 'testfile3'
$ git rm -r *
rm '.testfile1'
rm '.testfile2'
为什么 git 在第一次尝试时不删除所有文件?另外,为什么只有 repo root 的文件会发生这种情况?
有趣的是,如果我只有那些 .testfiles,那么 git 会在第一次尝试时将它们删除。
我使用的是git版本1.7.9.5
【问题讨论】:
-
* 将被你的 shell 解释,检查它的通配规则
-
control x 会扩展 * 以便你看到它
-
没有一个答案提到解决方案:如果您希望
*被 git 解释,您需要引用或转义它:git rm -r '*'
标签: git