562

当我尝试提交更改时,我收到此错误:

error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty
fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt

我试过git fsck了:

error: object file .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71 is empty
fatal: loose object 03dfd60a4809a3ba7023cbf098eb322d08630b71 (stored in .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71) is corrupt

我该如何解决这个错误?

4

27 回答 27

1089

我有一个类似的问题。我的笔记本电脑在 Git 操作期间没电了。嘘。

我没有任何备份。(注意 Ubuntu One 不是 Git 的备份解决方案;它会帮助您用损坏的存储库覆盖您的健全存储库。)

对于 Git 向导,如果这是一种不好的修复方法,请发表评论。然而,它确实对我有用……至少是暂时的。

第 1 步:备份文件夹.git(实际上,我会在每一个更改某些内容的步骤之间执行此操作,但使用新的复制名称,例如.git-old-1.git-old-2等.):

cd ~/workspace/mcmc-chapter
cp -a .git .git-old

第 2 步:运行git fsck --full

git fsck --full

error: object file .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e is empty
fatal: loose object 8b61d0135d3195966b443f6c73fb68466264c68e (stored in .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e) is corrupt

第三步:删除空文件。我想这是怎么回事;反正它是空白的。

rm .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e

rm: remove write-protected regular empty file `.git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e'? y

第三步:git fsck再次运行。继续删除空文件。您还可以cd进入该.git目录并运行find . -type f -empty -delete -print以删除所有空文件。最终 Git 开始告诉我它实际上是在对对象目录做一些事情:

git fsck --full

Checking object directories: 100% (256/256), done.
error: object file .git/objects/e0/cbccee33aea970f4887194047141f79a363636 is empty
fatal: loose object e0cbccee33aea970f4887194047141f79a363636 (stored in .git/objects/e0/cbccee33aea970f4887194047141f79a363636) is corrupt

第4步:删除所有空文件后,我最终开始git fsck实际运行:

git fsck --full

Checking object directories: 100% (256/256), done.
error: HEAD: invalid sha1 pointer af9fc0c5939eee40f6be2ed66381d74ec2be895f
error: refs/heads/master does not point to a valid object!
error: refs/heads/master.u1conflict does not point to a valid object!
error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229

第 5 步:尝试git reflog。失败是因为我的 HEAD 坏了。

git reflog

fatal: bad object HEAD

第 6 步:谷歌。找到这个。手动获取 reflog 的最后两行:

tail -n 2 .git/logs/refs/heads/master

f2d4c4868ec7719317a8fce9dc18c4f2e00ede04 9f0abf890b113a287e10d56b66dbab66adc1662d Nathan VanHoudnos <nathanvan@gmail.com> 1347306977 -0400    commit: up to p. 24, including correcting spelling of my name
9f0abf890b113a287e10d56b66dbab66adc1662d af9fc0c5939eee40f6be2ed66381d74ec2be895f Nathan VanHoudnos <nathanvan@gmail.com> 1347358589 -0400    commit: fixed up to page 28

第 7 步:请注意,从第 6 步中我们了解到 HEAD 当前指向最后一次提交。所以让我们试着看看父提交:

git show 9f0abf890b113a287e10d56b66dbab66adc1662d

commit 9f0abf890b113a287e10d56b66dbab66adc1662d
Author: Nathan VanHoudnos <nathanvan@XXXXXX>
Date:   Mon Sep 10 15:56:17 2012 -0400

    up to p. 24, including correcting spelling of my name

diff --git a/tex/MCMC-in-IRT.tex b/tex/MCMC-in-IRT.tex
index 86e67a1..b860686 100644
--- a/tex/MCMC-in-IRT.tex
+++ b/tex/MCMC-in-IRT.tex

有效!

第 8 步:所以现在我们需要将 HEAD 指向 9f0abf890b113a287e10d56b66dbab66adc1662d。

git update-ref HEAD 9f0abf890b113a287e10d56b66dbab66adc1662d

哪个没有抱怨。

第 9 步:查看 fsck 的内容:

git fsck --full

Checking object directories: 100% (256/256), done.
error: refs/heads/master.u1conflict does not point to a valid object!
error: 0e31469d372551bb2f51a186fa32795e39f94d5c: invalid sha1 pointer in cache-tree
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
missing blob 8b61d0135d3195966b443f6c73fb68466264c68e
missing blob e89896b1282fbae6cf046bf21b62dd275aaa32f4
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a
missing blob caab8e3d18f2b8c8947f79af7885cdeeeae192fd
missing blob e4cf65ddf80338d50ecd4abcf1caf1de3127c229

第 10 步:缓存树中的无效 sha1 指针似乎来自(现已过时的)索引文件(source)。所以我杀了它并重置了存储库。

rm .git/index
git reset

Unstaged changes after reset:
M    tex/MCMC-in-IRT.tex
M    tex/recipe-example/build-example-plots.R
M    tex/recipe-example/build-failure-plots.R

第 11 步:再次查看 fsck ......

git fsck --full

Checking object directories: 100% (256/256), done.
error: refs/heads/master.u1conflict does not point to a valid object!
dangling blob 03511c9868b5dbac4ef1343956776ac508c7c2a2
dangling blob dd09f7f1f033632b7ef90876d6802f5b5fede79a

悬空的blob 不是错误。我不关心master.u1conflict,现在它正在工作,我不想再碰它了!

第 12 步:赶上我的本地编辑:

git status

# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   tex/MCMC-in-IRT.tex
#    modified:   tex/recipe-example/build-example-plots.R
#    modified:   tex/recipe-example/build-failure-plots.R
#
< ... snip ... >
no changes added to commit (use "git add" and/or "git commit -a")


git commit -a -m "recovering from the git fiasco"

[master 7922876] recovering from the git fiasco
 3 files changed, 12 insertions(+), 94 deletions(-)

git add tex/sept2012_code/example-code-testing.R
git commit -a -m "adding in the example code"

[master 385c023] adding in the example code
 1 file changed, 331 insertions(+)
 create mode 100644 tex/sept2012_code/example-code-testing.R
于 2012-09-11T13:53:19.677 回答
351

Git 对象文件已损坏(正如其他答案中所指出的那样)。这可能发生在机器崩溃等期间。

我有同样的事情。在阅读了此处的其他最佳答案后,我找到了使用以下命令修复损坏的 Git 存储库的最快方法(在包含该.git文件夹的 Git 工作目录中执行):

(请务必先备份您的 Git 存储库文件夹!)

find .git/objects/ -type f -empty | xargs rm
git fetch -p
git fsck --full

这将首先删除任何导致整个存储库损坏的空对象文件,然后从远程存储库中获取丢失的对象(以及最新更改),然后执行完整的对象存储检查。在这一点上,它应该成功而没有任何错误(但可能仍然有一些警告!)

PS。这个答案表明您在某个地方(例如,在 GitHub 上)有您的 Git 存储库的远程副本,而损坏的存储库是与仍然完好无损的远程存储库绑定的本地存储库。如果不是这种情况,请不要尝试按照我推荐的方式进行修复。

于 2015-06-29T07:35:57.323 回答
46

当我推送我的提交并且我的计算机挂起时,这个错误发生在我身上。

这就是我修复它的方法。


修复步骤

git status

显示空/损坏的目标文件

rm .git/objects/08/3834cb34d155e67a8930604d57d3d302d7ec12

去掉它

git status

我收到fatal: bad object HEAD消息

rm .git/index

我删除index了重置。

git reset

致命:无法解析对象“头”。

git status
git pull

只是为了检查发生了什么

tail -n 2 .git/logs/refs/heads/MY-CURRENT-BRANCH

它打印日志分支的最后两行,tail -n 2以显示我的最后两个提交哈希

git update-ref HEAD 7221fa02cb627470db163826da4265609aba47b2

我选最后一个commit hash

git status

它显示我的所有文件都已删除,因为我删除了该.git/index文件

git reset

继续重置

git status

验证我的修复

于 2015-05-05T02:34:40.557 回答
37

我解决了这个问题,删除了正在检测的各种空文件,git fsck然后运行了一个简单的 Git 拉取。

令我失望的是,即使文件系统实现了日志和其他“事务”技术来保持文件系统正常,Git 也可能由于电源故障或空间上的空间而进入损坏状态(并且无法自行恢复)设备。

于 2013-05-07T14:10:18.610 回答
11

我只是遇到了同样的问题:在拉取远程存储库后,当我做了一个时,git status我得到了:

“错误:对象文件 (...) 为空”
“致命:松散对象 (...) 已损坏”

我解决这个问题的方法是:

  1. git stash
  2. 错误地删除 Git 文件(我不确定是否有必要)
  3. git stash clear

我不知道到底发生了什么事,但那些指示似乎让一切都变得干净了。

于 2013-02-13T09:55:28.663 回答
8

因为我必须定期重新启动我的虚拟机,所以这个问题经常发生在我身上。几次之后,我意识到我不能每次都重复Nathan Vanhoudnos 描述的过程,尽管它总是有效的。然后我想出了以下更快的解决方案。

第1步

将整个存储库移动到另一个文件夹。

mv current_repository temp_repository

第2步

再次从源克隆存储库。

git clone source_to_current_repository.git

第 3 步

删除新存储库下的所有内容,但.git文件夹除外。

第4步

temp_repository中的所有内容移动到新存储库,.git文件夹除外。

第 5 步

删除temp_repository,我们就完成了。

几次之后,我相信您可以很快地完成这些程序。

于 2015-12-19T00:58:45.407 回答
6
  1. 移动您的应用程序文件夹以进行备份,即mv app_folder app_folder_bk (它就像一个git stash
  2. git clone your_repository
  3. 最后,打开一个合并工具(我在 Linux 上使用Meld diff 查看器或在 Windows 上使用WinMerge)并将更改从右侧(app_folder_bk)复制到左侧(新app_folder)(就像git stash apply)。

就这样。也许这不是最好的方法,但我认为它是如此实用。

于 2014-02-20T15:15:31.953 回答
6

我在使用虚拟机时经常遇到这个问题。

对我来说,以下作品:

cd /path/to/your/project
rm -rf .git

如果您想节省一些下载 - 进入您的文件资源管理器并删除文件夹中已提交的所有文件并保留在您的/vendor/node_modules(我使用PHP Composernpm)文件夹中。

然后只需创建一个新的存储库:

git init

添加您的遥控器

git remote add origin ssh://git@github.com/YourUsername/repoName.git

并获取分支/全部

git fetch origin somebranch

并检查一下

git checkout somebranch

那么您应该处于错误之前的位置。

于 2020-02-02T05:37:42.813 回答
4

这解决了我的问题:

git stash
git checkout master
cd .git/ && find . -type f -empty -delete
git branch your-branch-name -D
git checkout -b your-branch-name
git stash pop
于 2018-07-13T04:02:27.473 回答
4

在一个脚本中

#! /bin/sh

# Save Git data
cp -r .git gitold

# Remove all empty Git object files
find .git -type f -empty -delete -print

# Get the current branch name
branchname=$(git branch --show-current)

# Get the latest commit hash
commit=$(tail -2 .git/logs/refs/heads/$branchname | awk '{ print $2 }' | tr -d '[:space:]')

# Set HEAD to this latest commit
git update-ref HEAD $commit

# Pull the latest changes on the current branch (considering remote is origin)
git pull origin $branchname

echo "If everything looks fine you remove the git backup running :\n\
      $ rm -rf gitold \n\
Otherwise restore it with: \n\
      $ rm -rf .git; mv gitold .git"
于 2021-01-30T21:11:42.457 回答
3

就我而言,发生此错误是因为我正在输入提交消息并且我的笔记本已关闭。

我执行了以下步骤来修复错误:

  • git checkout -b backup-branch# 创建备份分支
  • git reset --hard HEAD~4# 重置为一切正常的提交。就我而言,我必须在头部支持四个提交,直到我的头部处于输入提交消息之前的位置。在执行此步骤之前,请复制您将重置的提交的哈希值。就我而言,我复制了最后四个提交的哈希值
  • git cherry-pick <commit-hash># Cherry 选择从旧分支到新分支的重置提交(在我的情况下是四个提交,所以我做了四次此步骤)。
  • git push origin backup-branch# 推送新分支以确保一切正常
  • git branch -D your-branch# 删除本地分支('your-branch' 是有问题的分支)
  • git push origin :your-branch# 从远程删除分支
  • git branch -m backup-branch your-branch# 将备份分支重命名为有问题的分支的名称
  • git push origin your-branch# 推送新分支
  • git push origin :backup-branch# 从远程删除备份分支
于 2014-04-27T18:37:53.657 回答
3

让我们变得简单...仅在您将源代码上传到远程 Git 存储库的情况下

  1. 备份您的.git文件夹

  2. 检查您的 Git 存储库

     git fsck --full
    
  3. 删除空目标文件(全部)

     rm .git/objects/8b/61d0135d3195966b443f6c73fb68466264c68e
    
  4. 再次检查您的 Git 存储库。

     git fsck --full
    
  5. 从远程 Git 存储库中拉取源代码

     git pull origin master
    
于 2017-09-13T09:48:28.863 回答
2

如果您有一个包含所有需要的分支和提交的本地存储库,并且您可以创建一个新的存储库(或删除服务器的存储库并创建一个新存储库),那么这是一种非常简单快捷的方法来处理这个问题代替它):

  1. 在服务器上创建一个新的空仓库(或删除旧仓库并在其位置创建一个新仓库)
  2. 将本地副本的远程 URL 更改为指向新存储库的远程 URL。
  3. 将所有分支从本地仓库推送到新的服务器仓库。

这会保留您在本地存储库中的所有提交历史记录和分支。

如果您在 repo 上有合作者,那么我认为在许多情况下,您的所有合作者所要做的就是更改其本地 repo 的远程 URL,并可选择推送他们拥有的服务器没有的任何提交。

当我遇到同样的问题时,这个解决方案对我有用。我有一个合作者。在我将本地存储库推送到新的远程存储库后,他只需将本地存储库更改为指向远程存储库 URL,一切正常。

于 2014-10-30T16:08:38.317 回答
2

我假设您有一个遥控器,所有相关更改都已推送到它。我不关心本地更改,只是想避免删除和重新克隆大型存储库。如果您确实有重要的本地更改,您可能需要更加小心。

我的笔记本电脑崩溃后也遇到了同样的问题。可能是因为它是一个大的存储库,我有很多损坏的目标文件,在调用时一次只出现一个git fsck --full,所以我写了一个小的 shell one-liner 来自动删除其中一个:

$ sudo rm `git fsck --full 2>&1 | grep -oE -m 1 ".git/objects/[0-9a-f]{2}/[0-9a-f]*"`

  • 2>&1将错误消息重定向到标准输出以便能够对其进行grep
  • 使用的grep选项:
  • -o只返回行中实际匹配的部分
  • -E启用高级正则表达式
  • -m 1确保只返回第一个匹配项
  • [0-9a-f]{2}匹配 0 到 9 以及 a 和 f 之间的任何字符(如果其中两个同时出现)
  • [0-9a-f]*匹配 0 到 9 之间的任意数量的字符,并且 a 和 f 同时出现

它仍然一次只删除一个文件,因此您可能希望在循环中调用它,例如:

$ while true; do sudo rm `git fsck --full 2>&1 | grep -oE -m 1 ".git/objects/[0-9a-f]{2}/[0-9a-f]*"`; done

这样做的问题是,它不再输出任何有用的东西,所以你不知道它什么时候完成(它不应该在一段时间后做任何有用的事情)。

git fsck --full为了“解决”这个问题,我在每一轮之后 添加了一个调用,如下所示:$ while true; do sudo rm `git fsck --full 2>&1 | grep -oE -m 1 ".git/objects/[0-9a-f]{2}/[0-9a-f]*"`; git fsck --full; done

它现在大约快了一半,但它确实输出了它的“状态”。

git stash在此之后,我在这里的答案中提出了一些建议,最终达到了我可以和git stash drop很多破碎的东西的地步。

第一个问题解决了

之后我仍然遇到以下问题: unable to resolve reference 'refs/remotes/origin/$branch': reference broken可以通过以下方式解决 $ rm \repo.git\refs\remotes\origin$branch

$ git fetch

然后我做了一个 $ git gc --prune=now

$ git remote prune origin

为了很好的衡量和

git reflog expire --stale-fix --all

error: HEAD: invalid reflog entry $blubb跑的时候摆脱掉git fsck --full

于 2017-09-08T13:45:49.637 回答
2

我和我的同事已经多次遇到同样的问题,为了解决它,我们只需执行我在下面描述的步骤。它不是可以找到的最优雅的解决方案,但它可以在不丢失数据的情况下工作。

  1. 重命名当前工作目录。(old_project对于这个例子)。
  2. 使用 . 在新目录中克隆存储库git clone
  3. 在命令行中,将工作目录更改为新创建的项目并切换到您一直在处理的分支。
  4. 将其中的所有文件和目录old_project(目录除外.git)复制到新创建的项目目录中。
  5. 检查您的工作树状态(请注意,更改比您预期的要多),然后提交更改。

我希望它有帮助...

于 2018-06-11T13:58:00.327 回答
2

我通过以下方式修复了我的 git 错误:目标文件为空:

  1. 保存自上次成功提交/推送以来我编辑的所有文件的副本,
  2. 删除并重新克隆我的存储库,
  3. 用我编辑的文件替换旧文件。
于 2019-02-25T21:39:18.930 回答
1

我遇到了同样的问题,我使用了一种非常简单的方法来解决它。我发现那些丢失的文件存在于我队友的计算机上。

将这些文件一一复制到 Git 服务器(总共 9 个文件),从而解决了问题。

于 2018-03-14T02:24:10.730 回答
1

如果您在 github.com 上的公共存储库正在运行,但您的本地存储库已损坏,这是一种解决问题的方法。请注意,您将丢失在本地存储库中所做的所有提交。

好的,所以我在本地有一个存储库给我 this object empty error,以及 github.com 上的相同存储库,但没有此错误。所以我所做的只是从 GitHub 克隆正在运行的存储库,然后从损坏的存储库中复制所有内容(.git文件夹除外),并将其粘贴到正在运行的克隆存储库。

这可能不是一个实用的解决方案(因为您删除了本地提交),但是,您需要维护代码和修复的版本控制。

请记住在应用此方法之前进行备份。

于 2018-06-12T07:22:50.407 回答
1

就我而言,保留本地提交历史对我来说并不重要。因此,如果这也适用于您,您可以将其作为上述解决方案的快速替代方案:

.git/你基本上只是用一个干净的目录替换损坏的目录。

让我们假设您的项目的以下目录包含损坏的 Git 文件:projects/corrupt_git/

  1. cp projects/corrupt_git projects/backup- (可选)进行备份
  2. git clone [repo URL] projects/clean_git- 让你得到projects/clean_git
  3. rm -rf corrupt_git/.git/- 删除损坏的.git文件夹
  4. mv clean_git/.git/ corrupt_git/- 将干净的 git 移至 corrupt_git/.git
  5. git statusprojects/corrupt_git- 以确保它工作
于 2019-11-01T13:17:24.107 回答
1

这也几乎经常发生在我身上。当这种情况完全发生时,我还没有制定协议,但我怀疑只要我的虚拟机(VM) “意外”存在,就会发生这种情况。如果我关闭 VM 窗口(我使用的是Ubuntu 18.04(Bionic Beaver))并重新开始,事情总是(?)工作。但是如果我的笔记本电脑关闭时VM窗口仍然打开(Win​​dows主机系统),那么我会经常遇到这个问题。

至于这里给出的所有答案:

  1. 谢谢 - 它们非常有用;我通常保存我的代码的本地副本,从远程恢复存储库,然后将备份副本移回本地文件夹。

  2. 由于根本问题不是真正的 Git 问题,而是 VM 和/或 Linux 问题,我想知道是否不应该有办法治愈原因而不是症状?这种错误不是表明某些文件系统更改没有在任何合理的时间内“应用”,而只是缓存?(例如,请参阅Linux 中的文件编辑是否直接保存到磁盘中?)——在我看来,虚拟 Linux 机器似乎没有足够频繁地同步它们的东西。无论这是 Oracle 的 VirtualBox(否则工作得非常好)或来宾文件系统的问题,还是我们都忽略的某些设置的问题,这超出了我的专业知识。但如果有人能阐明这一点,我会很高兴。

于 2020-03-07T16:17:19.493 回答
0

将所有内容(在包含.git文件夹的文件夹中)复制到备份中,删除所有内容,然后重新启动。确保你手边有 Git 遥控器:

git remote -v
 origin    git@github.com:rwldrn/idiomatic.js.git (fetch)
 origin    git@github.com:rwldrn/idiomatic.js.git (push)

然后

mkdir mygitfolder.backup
cp mygitfolder/* mygitfolder.backup/
cd mygitfolder
rm -r * .git*
git init
git remote add origin git@github.com:rwldrn/idiomatic.js.git

然后手动合并任何新文件,并尝试保持计算机开机。

于 2013-05-01T04:41:57.777 回答
0

从干净的分支签出 master 后,我遇到了同样的问题。

过了一会儿,我在 master 中发现了很多修改过的文件。我不知道他们为什么从一个干净的分支切换到那里。无论如何,因为修改后的文件对我来说毫无意义,我只是把它们藏起来,错误就消失了。

git:(master) git stash

于 2014-07-01T14:40:29.057 回答
0

Nathan VanHoudnos 介绍的十二步解决方案也帮助我摆脱了困境。谢谢。关键步骤是输入:

git fsck --full

并删除所有空对象

rm .git/objects/...

然后得到 flog 的两行:

tail -n 2 .git/logs/refs/heads/master

使用返回值

git update-ref HEAD ...

在这一点上我没有更多的错误,所以我备份了我最近的文件。然后执行 Git 拉取,然后执行 Git 推送。我将备份复制到我的 Git 存储库文件并进行了另一个 Git 推送。这让我了解最新情况。

于 2016-07-10T05:43:43.483 回答
0

如果您有备份并且赶时间:

对当前的 Git 损坏的项目路径进行新备份。

  1. 将您的垃圾移至.git垃圾箱(永不删除)
  2. .git备份复制
  3. git pull(会产生合并冲突)
  4. 将你所有的资源(你放在 Git 中的所有东西)移到垃圾箱:(./src 永远不要删除)
  5. 从新备份中复制所有源代码(放入 Git 中的所有内容)
  6. 接受所有“合并” git gui,推动并...拍手!
于 2016-09-23T04:15:25.693 回答
0

实际上,我遇到了同样的问题。

在尝试此操作之前,请拥有您的代码副本。

我已经做了 git reset HEAD~

我最后一次提交被撤消了。然后我又犯了,问题就解决了!

于 2020-05-01T11:40:41.683 回答
0

在我的虚拟机崩溃并且 Git 文件损坏后,我遇到了同样的问题。

第一步,从项目的根文件夹。

find .git/objects -type f -empty -delete

然后修剪和取...

git prune
git fetch --all --prune

还有一些回滚,它开始工作了。

于 2021-05-26T06:12:58.810 回答
0

在这种情况下,我通过关注这个问题来解决我的问题。

  1. 从我的存储库目录中删除 .git 文件夹。(为安全保留备份)
  2. 在另一个目录中克隆我的仓库。
  3. 从新的克隆目录复制 .git 文件夹。
  4. 粘贴到我以前出现问题的目录中。

检查 git 状态,希望你能看到你的所有变化。现在您可以提交和推送。

于 2021-10-10T05:29:54.260 回答