无法锁定refs/heads/master

Liv*_*ing 15 git

我相对来说是git的新手,我正面临着这个问题.git push命令显示以下错误.我将从一开始就向你解释我一直想做的事情.我创建了一个子模块,提交并推送它.推送抛出下面的错误.

Salman@PC_HOME ~/git/breakit-web-app (master)
$ git push origin master
error: refs/heads/master does not point to a valid object!
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 421 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: bb/acl: salmanmanekia is allowed. accepted payload.
error: Ref refs/heads/master is at 6a47a0fd398610a75bdab8976f842dc0efd89f86 but expected 00000000000000000000000000000000000000000
remote: error: failed to lock refs/heads/master

To ssh://git@bitbucket.org/majuri/breakit-web-app.git
 ! [remote rejected] master -> master (failed to lock)
error: failed to push some refs to 'ssh://git@bitbucket.org/majuri/breakit-web-app.git'
Run Code Online (Sandbox Code Playgroud)

这是一个屏幕截图: 在此输入图像描述

之后,我尝试了一些解决方案,但没有一个有效.我还会简单地解释一下我一直在尝试什么

1:从bitbucket repo我注意到有一些danggling提交(图2中的红色箭头)所以我给出了以下命令来解决git gc和git prune.

2:我也试过像git revert HEAD和git push origin HEAD --force这样的命令,但似乎没有工作.. 在此输入图像描述

其他详情:

$ git rev-parse --symbolic-full-name master
refs/heads/master

$ git rev-parse master
0da090c5cbde10ff19602a2722ae05231c30dff5

$ git show-ref master
0da090c5cbde10ff19602a2722ae05231c30dff5 refs/heads/master
6a47a0fd398610a75bdab8976f842dc0efd89f86 refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

谢谢

Flo*_*ows 14

你必须更新git已知的HEAD.这对你来说是透明的.

1 -master分公司

git checkout master
Run Code Online (Sandbox Code Playgroud)

2 -从远程站点获取更新到本地存储库

git fetch
Run Code Online (Sandbox Code Playgroud)

3 -使用rebase而不是merge来更新本地存储库.看到之间的区别git pullgit rebase

git rebase origin/master
Run Code Online (Sandbox Code Playgroud)

4 -推你的master分支

git push origin master:master
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用更简单的“git pull origin master --rebase”,它与您的前 3 个命令相同 (4认同)