如何忽略已经提交的文件?

2024-01-12

之前,以下是我的.gitignore file:

...
config/database.yml
.DS_Store

后来我创建了一个app_config.yml文件放在 config 目录中并提交。

现在,我意识到我不需要app_config.ymlgit 存储库中的文件。 我修改了我的.gitignore file:

...
config/app_config.yml
config/database.yml
.DS_Store

现在,当我承诺时,app_config.yml文件仍在我的存储库中。 我想从我的存储库中删除该文件。我该怎么做?


正如《忽略不会删除文件 http://gitready.com/beginner/2009/03/06/ignoring-doesnt-remove-a-file.html"
(以下引用来自尼克·夸兰托,
在他的博客中准备好 http://gitready.com/“学习 git 一次提交一个”):

当你告诉 Git 忽略文件时,它只会停止监视该文件的更改,而不会停止其他任何操作。
这意味着历史记录仍然会记住该文件并拥有它
.

如果您想从存储库中删除文件,但将其保留在工作目录中,只需使用:

git rm --cached <file>

但是,这仍会将文件保留在历史记录中。

如果您确实想将其从历史记录中删除,您实际上有两个选择:

  • 重写存储库的提交,或者
  • 重来。

这两个选项都很糟糕,这是有充分理由的:Git 努力不丢失你的数据。
就像变基一样,Git 迫使您考虑这些类型的选项,因为它们是破坏性操作。

如果您确实想从历史记录中删除文件,git filter-branch是您正在寻找的钢锯。
一定要仔细阅读它的内容manpage http://git-scm.com/docs/git-filter-branch在使用它之前,因为它实际上会重写您项目的提交。这实际上是执行某些操作的一个很好的工具,并且可以执行各种操作,例如完全删除作者的提交以移动项目根文件夹。从所有修订版本中删除文件的命令是:

git filter-branch --index-filter 'git rm --cached <file>' HEAD

当您需要清除可能已放置在存储库中的敏感或机密信息时,此操作绝对有用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何忽略已经提交的文件? 的相关文章

  • 创建一个空分支?

    我有一个包含项目的 git 存储库 我现在要对这个项目进行大规模的修改 如何为这次大修创建一个空白的新分支 然后当完成时 如何将这个分支切换到master 使用 checkout orphan 命令 git checkout orphan
  • 当当前分支上有未提交的更改时签出另一个分支

    大多数时候 当我尝试签出另一个现有分支时 如果我在当前分支上有一些未提交的更改 Git 会不允许我这样做 所以我必须首先提交或隐藏这些更改 然而 有时 Git 确实允许我在不提交或存储这些更改的情况下签出另一个分支 并且它会将这些更改携带到
  • 带有 git Remote 的 Gem 文件在 Heroku 推送上失败

    我的 gemfile 中有以下行 gem client side validations git gt email protected cdn cgi l email protection Dakuan client side valida
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • Git 到 TFS 源代码管理迁移

    我想看看 TFS 如何为我的命令工作 所以我想将我们当前的 GIT 存储库移动到 TFS 数据库 我们使用 GIT 来获得普遍的分支支持 因此我想使用 TFS 2010 来解决该问题 现在的问题是 如何将 GIT 存储库导出到 TFS 显然
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • Git - 如何将整个目录恢复到特定提交(删除任何添加的文件)

    我想恢复 git 中的目录 恢复其中的所有文件 并删除自该提交以来添加的所有文件 进行结账似乎只能满足我的第一个要求 但不会删除任何文件 我想出了最简单的解决方案 git rm path to dir git checkout
  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • 使当前提交成为 Git 存储库中唯一(初始)提交?

    我目前有一个本地 Git 存储库 我将其推送到 Github 存储库 本地存储库有约 10 次提交 Github 存储库是其同步副本 我想要做的是从本地 Git 存储库中删除所有版本历史记录 以便存储库的当前内容显示为唯一提交 因此存储库中
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • 显示 master 之前/之后有多少提交分支的别名

    新的 Bitbucket Branches 页面非常棒 它显示每个分支领先 落后于 master 的提交数量 是否有显示相同信息的 Git 别名 信息应显示 分店名称 上次更新是什么时候 其背后有多少提交 有多少提交领先于 master 看
  • Eclipse Git 关键字扩展

    每次我检查 git hub 服务器的源代码时 我都需要更新源代码修订关键字 version date 等 你可能知道 Git 中的主要问题是你无法使用以下命令修改文件 提交后有关提交的信息 因为 Git 首先对文件进行校验 基本上我想要实现
  • git 2.32 git push -u origin master 没有任何反应

    I ve starting to use git github and I m stucked on how to push my codes to github I m following some tutorials and when
  • 尝试克隆一个 git 存储库,但它卡在克隆到中

    我使用的是 Windows 10版本 10 0 19042 内部版本 19042 GIT Ver 2 32当尝试使用 git bash 执行以下命令时git clone depth 1 b carla https github com Ca
  • 使用Git记录文件复制操作

    当我使用 git mv 在 git 中移动文件时 状态显示该文件已被重命名 即使我更改了某些部分 它仍然被认为几乎是相同的东西 这很好 因为它让我可以跟踪它的历史记录 当我复制文件时 原始文件有一些历史记录 我想将其与新副本关联起来 我尝试
  • 使用BFG时可以指定多个文件吗?

    我正在尝试删除通配符无法覆盖的多种类型的文件 我尝试使用多个 delete files 但它不接受它 还尝试将文件全部放在 delete files 之后 但它也不接受它 有没有一种方法可以将它们全部放在一个命令中 如果没有 那么我必须运行
  • GitLab:无法将代码推送到服务器?

    我已经在 Ubuntu 服务器上安装了 GitLab 一切似乎都工作正常 除了我无法向服务器推送 拉取 克隆 当我按下时 我收到一般错误消息 fatal Could not read from remote repository Pleas
  • git push --force-with-lease 总是安全吗?

    我一直遵循的规则是 一旦 git 历史记录被推送到远程存储库 就不再修改它 但我想知道交互式变基到推送 force with lease 是否绕过了这条规则 如果强制租约成功 对其他用户来说是否完全安全 或者此策略有任何注意事项吗 预先感谢
  • 如何在多个不同的分支上工作,以便我可以在它们之间轻松切换?

    有没有办法在 GIT 中处理同一个文件但不同的功能 分支 我确信有办法 但最简单的方法是什么 我不想隐藏我的更改 因为这很麻烦 借助 SVN 我能够将 2 个独立的分支作为 2 个不同的实体进行工作 无需任何干预 并且可以轻松在两者之间切换
  • Gitlab 备份错误:包对象因信号 9 死亡

    我有一个存储库 有 2 个分支 大小为 3 5GB 每个分支大约 1 5GB git 本身就有 700MB 这是错误 备份失败 失败的 失败 opt gitlab embedded bin git git dir mountdata git

随机推荐

  • JSON-LD 中的多个上下文

    如何访问 JSON LD 中的两个单独的词汇 我可以使用 2 个 contexts 吗 例如 context vocab http schema org first name givenName last name familyName c
  • 通过 yum install openssl11 将 CentOS 7 升级到 OpenSSL 1.1.1

    我使用 Centos 7 和 OpenSSL 1 0 2k openssl 1 0 2k 19 el7 x86 64 rpm 我尝试通过以下方式升级到 OpenSSL 1 1 1c yum install openssl11 基本上安装 o
  • 如何在多个 C# 调用中使用临时表

    我有一个 C 应用程序 使用 ADO Net 连接到 MSSQL 我需要创建表 具有动态数量的列 然后插入许多记录 然后从表中执行选择操作 每个步骤都必须是单独的 C 调用 尽管我可以在此期间保持连接 事务打开 问题是 Temp 表仅存在于
  • Android - 获取资源编号值时没有已知的包

    我最近更新了我的 android sdk 突然当我尝试构建我的 android 应用程序时 该应用程序出现在我的设备上 但没有采用应用程序图标 并且名称是包名称而不是应用程序名称 然后崩溃马上 在 logcat 中 生成了下图 有没有其他人
  • 如何检查目录是否是厨师中的符号链接

    我只想删除不是 symlnik 的目录 directory var www html do action delete only if end 所选答案不适用于 Windows 或 Bash 为默认解释器的系统 您应该使用跨平台的 Ruby
  • 使用自定义公式函数/自动化脚本的 Maximo 公式?

    在 Maximo 7 6 1 1 中 我想创建一个使用自定义公式函数 自动化脚本的属性公式 我尝试按照以下步骤执行此操作 但不幸的是 当我尝试在 WO Tracking 中使用它时出现错误 BMXAA3761E The event has
  • 在 Visual Studio Code 中使用奇异容器作为 python 解释器

    我通过 VScode 远程 ssh 连接到 HPC 环境 并希望直接在 VScode 中运行 python 代码以进行测试 我想将 python 解释器设置为一个在执行时运行 python 的奇点容器 这是通过在容器的 def 文件中添加以
  • 如何替换 UITableViewCell 中的 imageView?

    我有一个继承自 UIImageView 的类型 但添加了一些额外的功能 我想将它作为图像视图放入我的 UITableViewCells 中 但不想做一个全新的单元格布局 以便我可以添加此图像 当我尝试直接设置图像视图时 self image
  • 如何继承父级到两个具有相同字段的视图控制器? [复制]

    这个问题在这里已经有答案了 我在情节提要上有 2 个 viewController 每个都有UITextField同名 我有一个父类 它保存的属性名称UITextField 父类继承泛型UIViewController班级 每个 我的 vi
  • 谓词缓存

    是否有 Prolog 实现或库可以缓存谓词 或者您会使用assertz 1 和retract 1 来实现一个例如FIFO 缓存 如下所示 dynamic cache 1 ccall G cache G ccall G cache G cal
  • JavaScript/PHP 注册电子邮件确认工作流程的安全注意事项

    我正在为我的 JavaScript PHP 网站构建用户注册工作流程 用户注册后 他们就会被添加到数据库中 处于非活动状态 然后 用户将收到一封确认电子邮件 这需要他们单击确认链接 目前 确认链接会将用户重定向到站点登录页面 并以确认码作为
  • Android N Preview 模拟器崩溃

    我在新的 Android N 预览模拟器上一开始就遇到了这个崩溃 qemu fatal goldfish tty read Bad offset 20 RAX 0000000000000009 RBX 0000000000000000 RC
  • Java UTF-8 奇怪的行为

    我正在尝试用 Java 解码一些 UTF 8 字符串 这些字符串包含一些组合 unicode 字符 例如 CC 88 组合分音符 根据 字符顺序似乎没问题http www fileformat info info unicode char
  • Java Swing:清除 JPanel 中与 JLayeredPane 中的其他 JPanel 重叠的自定义绘制

    我有一个包含三个 JPanel 的 JLayeredPane 其中两个重叠 我正在向其绘制形状 重叠的两个 JPanel 之一需要清除绘制到其上的每个形状 而不影响绘制到其下方的 JPanel 的形状从屏幕上消失 目前我正在使用这样的东西
  • 将 Opencv Hsv 转换为等价于 Matlab Hsv

    我必须使用opencv开发android代码 代码相当于MATLAB 因为我必须读取图像并将其转换为 HSV 我已经使用以下方法完成了此操作 Imgproc cvtColor temp hsv Imgproc COLOR RGB2HSV 当
  • 如何在 log4j2 属性中设置类的日志级别

    在 log4j 中 我可以在属性文件中指定一个类以在调试级别进行日志记录 如下所示 log4j logger com mycompany mypackage ClassName DEBUG 我如何在 log4j2 中执行此操作 注意我仍然需
  • 角材质内的 routerLink

    a a
  • 数据库设计:成员表是单独的还是全部在一张表中?

    我想创建一个包含个人信息和登录详细信息的朋友表 将members表分成2个表更好 一个包含最少的细节 其次是其他细节 还是留在一张桌子上 我有很多包含成员外键的表 这在很大程度上取决于那些 其他 细节是什么 这是一个常见且有趣的问题 乍一看
  • 方法参数级别的 @ModelAttribute 注释的含义是什么?

    Spring 3 参考资料告诉我们 当你把它放在一个方法上时 范围 ModelAttribute映射一个 模型属性具体 带注释的方法参数 我不明白这个魔咒 因为我确定模型对象的别名 如果使用则为键值 ModelMap作为返回类型 在执行请求
  • 如何忽略已经提交的文件?

    之前 以下是我的 gitignore file config database yml DS Store 后来我创建了一个app config yml文件放在 config 目录中并提交 现在 我意识到我不需要app config ymlg