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
這個路徑:

image

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>


 

arrow
arrow
    全站熱搜

    MonkeyJ 發表在 痞客邦 留言(0) 人氣()