我试图将更改提交到我的存储库但是我收到以下错误:
git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Contronym\AppData\Local\Temp\bkdweixb.mnu
fatal: cannot lock ref 'HEAD': unable to resolve reference HEAD: Invalid argument
Completed with errors, see above.
我正在使用bitbucket和SourceTree。
此提交失败的原因是什么?在过去的一周里,我能够在最后3次提交中做得很好。然后,突然之间,我收到了这个错误。
修改
我跑了git gc
,结果如下:
$ git gc
error: bad ref for HEAD
error: bad ref for HEAD
error: inflate: data stream error (unknown compression method)
fatal: loose object 53b65bd9b4fec7f6a7b0b3313c68199a18804327 (stored in .git/objects/53/b65bd9b4fec7f6a7b0b3313c68199a18804327) is corrupt
error: failed to run repack
我检查了目录.git/objects/53/b65bd9b4fec7f6a7b0b3313c68199a18804327
,但这并不存在。那里还有另外两个文件,但b65bd9b4fec7f6a7b0b3313c68199a18804327
不存在。
答案 0 :(得分:8)
我遇到了同样的问题,发现的唯一解决方案是像这样导航到头部:
.git / refs / heads / branch_name
然后我删除了头文件。然后我进入控制台,并使用了命令:
git reset
然后所有文件都已取消登台,因此请添加它们并在以后提交。
答案 1 :(得分:2)
我遇到了同样的问题,这对我有用:
步骤1)-转到 .git \ logs \ refs \ heads 并打开名为 YOUR_BRANCH 的文档,现在复制< strong> ID -用户名和电子邮件前面的数字-
步骤2)-转到 .git \ refs \ heads 并打开名为 YOUR_BRANCH 的文档,删除该行并粘贴< strong> ID 中。
希望它对您有用
答案 2 :(得分:2)
导航到目录
.git / refs / heads / branch_name
删除首选分支名称
然后打开终端(git bash或Windows的cmd)
git reset
然后提交更改(如有必要)
然后运行以下命令以合并远程存储库分支
git pull
如果它与拒绝合并无关的历史记录
有关然后,在终端中运行以下命令
git pull origin master --allow-unrelated-histories
此解决方案解决了我的问题
答案 3 :(得分:1)
为我工作,在终端输入:(根据您的意愿支路)
echo ref: refs/heads/master >.git/HEAD
答案 4 :(得分:1)
如果您不介意丢失历史记录,则可以先删除.git文件,然后
git init
这将重新初始化您的存储库,然后您可以从那里继续
答案 5 :(得分:1)
我遇到了这个问题,我用了这个命令!
git reset
祝你好运!
答案 6 :(得分:0)
在工作副本中以root用户调用git命令后,我遇到了同样的问题。因此,.git /下各种文件的所有者和所有者组更改为“ root”。
当我切换回用户帐户时,由于缺少权限,git无法再处理此文件。
使用
重置权限后,它又可以工作了sudo chown -R [MY_USER]:[MY_GROUP] .git
答案 7 :(得分:0)
当我遇到这个问题时,我只是将项目克隆到一个新的文件目录中,并从.git \ refs \ heads中拉出heads文件夹,并在出现问题的目录中替换原始的heads文件。然后只需删除您创建的新克隆(因为它显然没有尝试推送的更新)。
答案 8 :(得分:0)
这是解决我的问题的方法:
rm -rf .git/refs/heads/
答案 9 :(得分:0)
删除文件 .git/ORIG_HEAD 然后再次拉取。对我来说,.git/ORIG_HEAD 文件是 0 字节并且有 .lock extn 而不是它应该包含的 git 引用,所以我只是摆脱了它。
答案 10 :(得分:0)
我今天遇到了同样的问题。 我找到了一个非常简单的解决方法来解决这个问题,但有一些权衡。 我仍然不确定最初是什么原因造成的。 我遇到了很多解决方案,但不幸的是,没有一个真正对我有用。
在此错误期间我无法初始化 GitHub 存储库,这实际上帮助我找到了解决方案。 显然,删除 .git 目录就解决了很多问题。就在我删除该目录时,我能够初始化一个 repo。 您将在工作区中找到 .git 文件夹。 .git(dir)/config(file) 。配置文件可能已损坏,可能是问题的根源。 (我不确定原因,非常感谢外行的任何解释)
就在我删除文件夹时,所有错误都消失了。我还能够从 GitHub 桌面提交(这向我抛出了错误,以前,直接从 IDE 提交时出现相同的错误)
唯一的缺点是,您所有的分阶段更改可能会丢失,仅此而已。而且您可能必须初始化一个新的 repo,因为给出相同的名称会引发错误(如果相同的 repo 已经存在)
所以,除此之外,你应该很高兴。您现在也可以提交更改。
答案 11 :(得分:-1)
再次克隆项目,安装模块并检出到您的分支。它将恢复状态。
答案 12 :(得分:-2)
我有同样的问题。我刚用命令:
EXPLAIN SELECT *
FROM ips
JOIN ranges rt ON SUBSTR(IPAddress,1,3) = SUBSTR(
比删除文件/my_project_directory/./git/refs/heads/master 而且我可以使用命令
,1,3)
WHERE IPID = 17054