git clean -ndX 不会删除目录

2024-05-05

With .gitignore:

foo/

和一个 git 存储库:

./quux
./quux/foo
./quux/foo/bar
./quux/foo/bar/baz

As foo被忽略,git 假设工作目录是干净的:

% git status
# On branch master
nothing to commit, working directory clean

The git clean -ndx prints:

% git clean -ndx
Would remove quux/

But git clean -ndX不打印任何内容。我希望它能删除quux/以及。

这是一个错误还是我不明白的某些 gitignore 功能? 如果我添加一些文件到quux并提交它。比 git clean 会尝试删除quux/foo/正如预期的那样。

我的 git 很新:git version 1.8.3.4.


$ git init .
$ echo foo/ >.gitignore
$ git add .;git commit -am ignore
$ mkdir -p foo/bar bar/foo
$ touch foo/bar/1 bar/foo/1
$ git clean -ndx
Would remove bar/
Would remove foo/
$ git clean -ndX
Would remove foo/
$

git help clean says:

   -X
       Remove only files ignored by Git. This may be useful to rebuild
       everything from scratch, but keep manually created files.

这意味着它不会删除手动创建的内容,除非明确忽略它。

在这种情况下bar目录是手动创建的并且没有显式忽略,因此不会被删除。

对于你来说也是如此quux目录。

要“修复”此问题,您需要添加bar通过添加文件来控制git控制的目录:

$ touch bar/x
$ git add bar/x
$ git commit -am add\ x
$ git clean -ndX
Would remove bar/foo/
Would remove foo/
$
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git clean -ndX 不会删除目录 的相关文章

  • git 分叉是如何工作的?

    所以我登录了 github 并 fork 了一个项目 每次原始存储库更新时 我的分叉存储库都会更新吗 或者我应该每次都从原始存储库进行分叉 这样我就不会错过对原始存储库所做的任何新更改 分叉是存储库的副本 分叉存储库允许您自由地尝试更改 而
  • 是否应该在 git 中跟踪 .history 文件夹中的文件[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我进行更改时 history 文件夹中的某些文件在我的状态中都会显示为未跟踪 我将如何控制它 即 make 是自动添加或不添加这些内容 而不
  • GitLab CI - 添加标签时避免构建

    添加 git 标签时如何防止触发 gitlab ci 管道 我在本地运行此命令 而不是在 gitlab ci 作业中运行 git tag a xyz 然后推送标签 这会触发各种管道 我想排除其中一些管道的运行 我正在尝试对诸如以下问题的想法
  • Git 克隆致命

    我在执行 git clone 时遇到错误 fatal pack has bad object at offset 824775943 inflate returned 1 fatal index pack failed 它仅适用于 Wind
  • 尽管有 svn 复制,如何 git svn 克隆完整历史记录

    在我的公司 我们即将从 svn 切换到 git 我们使用的 SVN 非常大 没有 svn 布局 并且在每个版本拆分上我们都制作了一个 svn 副本 SVN存储库结构 svnserver company de product xy 主要版本号
  • Git守护进程克隆错误

    All 我正在按照以下指示进行操作this SO https stackoverflow com a 377293 724357答案 快速提供回购 当我跑步时git clone git ipAddr git project我得到这个输出 r
  • 使用 Subversion 进行部分提交

    鉴于我做的案例两个独立的变化 in one文件 例如 添加了一个新方法并更改了另一个方法 我经常不想提交这两项更改 因为one提交 但作为two独立承诺 在 git 存储库上我会使用互动模式 of git 添加 1 http linux d
  • 如何标记单个文件?或如何下载特定文件? - 胃肠道

    我想向文件添加标签以轻松下载该文件而不是整个分支 如何下载GIT中的特定文件 我不知道有什么方法可以标记特定文件git 对于第二个问题 如何下载特定文件git 仅当您的意思是 同时下载 时 以下内容才有效in a git存储库 这就是我理解
  • EGit(Eclipse git 插件)可以使用 SSH 密钥代替用户名和密码吗?

    我需要提交的 git 中央存储库是使用 SSH 密钥配置的 我的用户名是jmglov 但是当我执行 git 操作时 例如git clone 我使用这个配置 jmglov kitiara cat git config remote origi
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • 如何将普通的 Git 存储库转换为裸存储库?

    如何将 普通 Git 存储库转换为裸存储库 主要区别似乎是 在普通的 Git 存储库中 你有一个 git存储库内的文件夹 包含构成工作副本的所有相关数据和所有其他文件 在裸露的 Git 存储库中 没有工作副本和文件夹 我们称之为repo g
  • RuntimeError:模型类 django_messages.models.Message 未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中

    我正在尝试使用https github com arneb django messages https github com arneb django messages打包我的消息传递内容并尝试了以下操作 pip install git h
  • git stash 删除最旧的存储(比如最旧的 5 个存储)

    如何在一个语句中删除最旧的存储 例如最旧的 5 个存储 而不是执行以下操作 git stash drop stash 3 git stash drop stash 4 git stash drop stash 5 git stash dro
  • 获取最新远程提交的 SHA1 [重复]

    这个问题在这里已经有答案了 可能的重复 git bash 如何检查是否有新的提交可用 https stackoverflow com questions 6006759 git bash how to check if theres a n
  • 如何升级 Windows 中 git svn 使用的 SVN 版本?

    我的公司正在将SVN升级到1 7 检查git svn version显示正在使用的SVN版本是1 4 6 我想获得 git svn 使用的 SVN 版本接近 1 7 但是 我没有看到有关更新 git svn 使用的 SVN 版本 在 Win
  • 是否可以在 git 存储库之外添加和提交文件?

    我们的文本文件分布在系统的各个角落 我们计划将这些文件中所做的所有修改添加到 git 存储库中 每次对这些文件进行修改都是由脚本进行的 因此 我们计划向该脚本添加新命令 以将文件添加到 git 存储库 但是 这些修改是同时进行的 我们可以为
  • Visual Studio Code 内置故事,用于查看 git 提交历史记录并对其内容进行比较

    In this https stackoverflow com questions 37899765 how can i view the git history in visual studio code 60013101 noredir
  • gitlab 请求将分支 A 合并到开发中(落后 3 次提交)我应该担心吗?

    在 gitlab 中创建合并请求时 我经常收到一条消息 请求将分支 A 合并到开发中 x 提交落后 gitlab想告诉我什么 我应该担心还是需要修复某些东西 什么 一段时间后合并请求在项目中打开时 由于其他人合并了自己的更改 您尝试合并到的
  • 如何解决 VS Code 中变基拉取的合并冲突?

    当我做一个git pull rebase 并且我的提交中存在合并冲突 我得到冲突差异视图 解决所有冲突并暂存文件 然后呢 我可以打开终端并运行git rebase continue但是 VS Code 中不应该有一个按钮来完成变基吗 只需使

随机推荐

  • 如何在 Vaadin 中禁用浏览器缓存

    我的问题很短 希望很容易解决 我怎样才能完全禁用我的浏览器缓存用vaadin实现的webservice 我想完全禁用缓存 因为当我尝试进行一些 PDF 流式传输并在浏览器中显示它们时遇到问题 我已经阅读了有关我的问题的解决方案 例如这里 使
  • Android 密钥库停止工作

    就在最近 我在密钥存储方面遇到了问题 我知道已经有很多关于这个问题的问题了 我已经阅读了所有这些内容并疯狂地用谷歌搜索 Error keytool error java io IOException Keystore was tampere
  • 将外部 jar 放在 JAVA_HOME/lib/ext 目录中是一件坏事吗?

    我们有一个在 JRE 环境中运行的应用程序 该应用程序使用了一些外部 jar 我们已将它们放在 JAVA HOME lib ext 文件夹中 这对我们来说已经工作了很多年 但最近一位新程序员加入了我们的团队 他似乎强调这是一件多么糟糕的事情
  • `knitr` 可以抑制 sql 块中的执行或输出吗?

    下面的文档运行 sql 并显示结果 我不希望显示任何输出 要么不运行该块 要么隐藏输出 有没有办法做到这一点 output html document Hide SQL Output First set up a temporary dat
  • 如何在 elisp 中将列表作为宏的参数?

    我想实现这样的目标 setq my global keybindings C x C d dired C x C b ibuffer C x b ivy switch buffer apply bind keys my global key
  • 在 IE9 中,如何使用 watir-webdriver 绕过无效证书屏幕?

    这是显示 该网站的安全证书有问题 的屏幕 标头 这是我尝试单击的链接的代码 tr td nbsp td td align left valign middle h4 img src red shield png border 0 alt N
  • Oracle 中的 TO_Char 数字格式模型

    我不完全理解如何使用 to char 函数将数字转换为具有适当格式模型的字符串 实际数字具有以下格式 使用逗号作为小数点分隔符 始终为 5 个小数 整数最多可达 6 可能是无限的 但目前绝不会超过 6 数字可以是正数或负数 数字可以以 0
  • 控制 Prolog 变量值选择

    灵感来自之前的一个问题 https stackoverflow com questions 41595786 using operator to save variables in a list我尝试实现一些可以枚举布尔表达式可能性的东西
  • 在Android上保存文件时避免因中断而丢失数据?

    我想知道其他人在 Android 上保存文件时使用什么策略来避免数据丢失 我有几个游戏应用程序 本质上 它们可能会在用户暂停 onPause 时保存游戏状态 保存游戏 这在 99 99 的情况下有效 但每隔一段时间我就会收到一个保存游戏的例
  • 为什么 jQuery 不使用 requestAnimationFrame?

    部分浏览器支持requestAnimationFrame 那么为什么不使用它呢 毕竟已经是自 Google Chrome 10 起受支持 https developer mozilla org en DOM window mozReques
  • PostgreSQL 索引使用分析

    是否有工具或方法可以分析 Postgres 并确定应创建哪些缺失的索引 以及应删除哪些未使用的索引 我在使用 SQLServer 的 分析器 工具执行此操作方面有一些经验 但我不知道 Postgres 中是否包含类似的工具 我喜欢这样来查找
  • 签入时 git-tf 告诉我“无法锁定”;我该如何修复它?

    我正在使用 git tf 推送到 TFS 项目 有时 当我尝试检查 TFS 中的一个或多个提交时 我会收到如下消息 正在连接到 TFS 签入 MyProject 0 git tf 无法锁定 MyProject 这是什么意思 是什么让我无法锁
  • Azure Functions 2.0 - EventHubTrigger - System.Private.CoreLib:无法加载文件或程序集“FunctionsProject.dll”

    我能够运行具有来自本地和 West US2 消费计划的 eventhub 绑定的函数应用程序 从过去 4 天开始 在我们将所有依赖项目转移到 x64 中构建并将所有 nuget 更新到最新版本之后 函数应用程序开始失败 它甚至无法启动 无法
  • 从cmder打开.sln文件?

    是否可以启动 devenv exe 并从 cmder 打开 sln 文件 从命令行克隆 git 存储库后 我想在 Visual Studio 中快速打开解决方案 而无需离开 cmder 丹尼是对的 你只需输入xxx sln 我有点懒 开发了
  • 导入的包“路径”不是导入包的依赖项

    我刚刚升级了我的软件包 现在我开始看到一条警告 是什么原因造成的 您的一个或部分包裹 很可能是path provider https pub dev packages path provider had path https pub dev
  • 在三级 ExpandableListView 中滚动后,展开的子项会折叠

    我正在做一个 3 级 ExpandableListview 的程序this http harrane blogspot in 2013 04 three level expandablelistview html comment form例
  • 字符串比较,其中 null 和empty 相等

    使用 C 和 NET 3 5 处理这种情况的最佳方法是什么 我有数百个字段需要从各种来源 主要是字符串 进行比较 有时 源将字符串字段返回为 null 有时返回为空 当然 有时字段中会有文本 我当前对 strA strB 的比较并没有减少它
  • Windows下如何分配非分页内存

    当我使用 cudaHostAlloc 时 它将分配非分页 固定 页面锁定 内存 我想知道如何在没有 cuda 的情况下仅使用 Windows SDK 来做到这一点 None
  • 为什么java switch语句不能处理null,因为它有一个“default”子句? [复制]

    这个问题在这里已经有答案了 为什么java switch语句不能处理null 因为它有一个 default 子句 例如 如果你有类似的东西 switch value case VAL1 do something1 break case VA
  • git clean -ndX 不会删除目录

    With gitignore foo 和一个 git 存储库 quux quux foo quux foo bar quux foo bar baz As foo被忽略 git 假设工作目录是干净的 git status On branch