- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我将大量文件 checkin 分支并 merge ,然后不得不删除它们,现在我留下了一个大的 .pack 文件,我不知道如何删除。
我使用 git rm -rf xxxxxx
删除了所有文件,我还运行了 --cached
选项。
谁能告诉我如何删除当前位于以下目录中的大型 .pack 文件:
.git/objects/pack/pack-xxxxxxxxxxxxxxxxx.pack
我是否只需要删除我仍然拥有但不再使用的分支?或者我还需要运行其他东西吗?
我不确定它有多大不同,但它显示了文件的挂锁。
谢谢
编辑
以下是我的 bash_history 的一些摘录,它们应该让您了解我是如何设法进入这种状态的(假设此时我正在一个名为“my-branch”的 git 分支上工作,并且我有一个文件夹包含更多文件夹/文件):
git add .
git commit -m "Adding my branch changes to master"
git checkout master
git merge my-branch
git rm -rf unwanted_folder/
rm -rf unwanted_folder/ (not sure why I ran this as well but I did)
我以为我也运行了以下命令,但它没有与其他命令一起出现在 bash_history 中:
git rm -rf --cached unwanted_folder/
我还以为我运行了一些 git 命令(如 git gc
)来尝试整理包文件,但它们也没有出现在 .bash_history 文件中。
最佳答案
问题是,即使您删除了这些文件,它们仍然存在于以前的修订版中。这就是 git 的全部意义所在,即使你删除了一些东西,你仍然可以通过访问历史记录来找回它。
你要做的是重写历史,它涉及到 git filter-branch
命令。
GitHub 在他们的网站上对这个问题有很好的解释。 https://help.github.com/articles/remove-sensitive-data
为了更直接地回答您的问题,您基本上需要运行的是相应替换了 unwanted_filename_or_folder
的命令:
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch unwanted_filename_or_folder' --prune-empty
这将从存储库的事件历史记录中删除对文件的所有引用。
下一步,执行 GC 循环以强制对文件的所有引用过期并从包文件中清除。这些命令中无需替换任何内容。
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
# or, for older git versions (e.g. 1.8.3.1) which don't support --stdin
# git update-ref $(git for-each-ref --format='delete %(refname)' refs/original)
git reflog expire --expire=now --all
git gc --aggressive --prune=now
关于git - 删除由 git 创建的大型 .pack 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11050265/
我在运行 git gc --prune=now 并得到结果 Counting objects: 100% (619263/619263), done. Delta compression using
我想获取某个类中的所有链接。 HTML 的一个例子是 ES M3 E-mini S&P500 June 2013
我正在 32 位 ARM mcu(Atmel SAM4SD32C,Cortex-M4/ARMv7E-M 部件)上实现二进制日志记录系统,并且正在设计我的数据结构。我的目标是将日志格式描述为一个压缩结构
以下测试代码: [Test] public void PossibleHtmlAgilityPackBug() { const string html = @""; var doc =
如何利用 D3 圆包布局来得到类似这样的图表: (即使有更细长的椭圆)? 这种图表样式的关键应用是更容易放置标签。 这是 jsfiddle这演示了我为其他目的制作的圆包,但我想对于任何想要试验和测试涉
在 C 语言中,编译器将按照声明的顺序排列结构成员,并在成员之间或最后一个成员之后插入可能的填充字节,以确保每个成员都正确对齐。 gcc 提供了一个语言扩展,__attribute__((packed
在 C 语言中,编译器将按照声明的顺序排列结构成员,并在成员之间或最后一个成员之后插入可能的填充字节,以确保每个成员都正确对齐。 gcc 提供了一个语言扩展,__attribute__((packed
在我正在处理的 WPF 应用程序中尝试使用合并的 ResourceDictionaries 解决问题时,我遇到了这个奇怪的问题。 我在外部 DLL(“通用”)中定义了自定义控件(TextButton、
在使用 webpack、webpacker gem 和 Rails 5.1 时,我注意到第一次运行 rspec 会生成 public/packs 和 public/packs-test 。 这些目录是
给定一个 HTML 文档,我想识别文档中的所有数字并在数字周围添加自定义标签。现在,我使用以下内容: HtmlNodeCollection bodyNode = htmlDoc.DocumentNod
我正在尝试使用 #pragma pack (n) 对齐数据成员.以下面为例: #include using namespace std; #pragma pack(8) // or (16) str
我正在尝试让 Html Agility Pack 在我的情况下工作。我需要检测现有 HTML 页面中的所有脚本元素并删除它们,将更改保存到另一个文件。在这里,bodyNode 返回正确数量的脚本标签,
我正在使用 GitLab,需要创建一个 .gitlab-ci.yml 脚本来为生成 nuGet 包的项目运行持续集成管道。 我在寻找可靠的文档来回答这个问题时遇到严重问题: 我应该使用 dotnet
我一直在尝试查找这个问题,但没有找到有效的解决方案。我的编译器忽略了#pragma pack(push) #pragma pack(2) 和 __ attribute __ ((aligned (2)
我正在尝试在 Ubuntu 10.10 上使用 Solaris Studio for Linux。 当我尝试构建以下代码时, const char * 名称 [] = { "苹果", "橙子", "芒
我正在尝试从 HTML 中删除不必要的内容。具体来说,我想删除评论。我找到了一个很好的解决方案( Grabbing meta-tags and comments using HTML Agility
我正在VHDL中的一个项目上工作,我需要从开关中获取4位输入,并根据其他开关的值向右或向左移动一定数量的位,该按钮需要在向右/向左移位之间切换。但是,当我尝试在Xilinx ISE中实现代码时,出现以
我有一台具有 SSH 访问权限的服务器,我想在那里放置一个 Git 源代码库。我刚刚在本地创建了一个 --bare --shared 存储库并将其复制到每个 SCP 的服务器。现在我想根据 SSH u
-moz-box-pack(或 box-pack)的 justify 属性似乎在 Firefox 中被忽略了。 Live example从我们的网站。每行中的数字应该右对齐,它们在 Chrome 中也
这是我的代码。我想知道如何“正确地”读取 BMP 文件,然后在不强制打包结构的情况下读取 header 值。 typedef struct __attribute__((packed)){ uint8
我是一名优秀的程序员,十分优秀!