push分支遇到這個錯誤:
error: cannot lock ref 'refs/heads/xxxx': unable to resolve reference 'refs/heads/xxxx': reference broken
To xxxx.git
! [remote rejected] .....
動作前請先服用這篇以絕後患:
https://monkeyjhong.pixnet.net/blog/post/340486731
ref破損 好發於推到一半被暴力中斷(你家停電、git server關機)
這次剛好推到一半公司server重啟...
直接查看repo會呈現很神奇的狀態是這支分支不見了(不存在)
但你要推一支一樣名字的上去又不行
所以她同時存在又不存在 wtf???
網路上大多是這個解法:
repo下cd 進.git/....這個路徑找到破損的分支
.git/refs/heads/branch_name
git reset
但我在本地做了處理無用
於是在git server上
找到repo
這個路徑:
rm 下方出問題的branch_name
不用reset直接repo上分支就長回來了
回到本地
之後本地再推報的個:
error: failed to push some refs to 'xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
先砍掉遠端分支
git push -d <remote_name> <branch>
再重推就搞定了
remote_name通常是origin
git push -u <remote_name>
<branch>