为什么git delete忽略`directory / *`下的文件而不是`directory /`下的文件

时间:2016-02-25 18:12:46

标签: git

正如this post

中所述
  

换句话说,如果你的.gitignore中有以下内容:

/my-ignored-directory/*
  

然后你被搞砸了 - 在git stash之后保存-u,my-ignored-file.txt   将会消失(对不起,它不在你刚刚创建的藏匿处   其一)。打破取消删除的包裹,并希望最好的。   或者,如果你的.gitignore中有以下内容:

/my-ignored-directory
  

然后你是金色的 - 不用担心,放松,放松,my-ignored-file.txt   将保持在git stash save -u之前的确切位置。

为什么会有这种差异?我还想知道如果我的.gitignore文件中有/my-ignored-directory/(带有斜杠),是否会删除任何文件?

1 个答案:

答案 0 :(得分:2)

你们两个例子的结果都是一样的,被忽略的文件都没了。当然有文档中描述的解决方案:

  

如果使用--include-untracked选项,所有未跟踪的文件也会被隐藏,然后使用git clean清理,使工作目录处于非常干净的状态。 如果使用--all选项,则除了未跟踪的文件外,还会隐藏和清除被忽略的文件。

Git内部调用git clean -d工作目录置于非常干净的状态

您想要的命令是:

git stash --include-untracked --all