本文小編為大家詳細(xì)介紹“因文件權(quán)限導(dǎo)致git fetch命令執(zhí)行失敗怎么解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“因文件權(quán)限導(dǎo)致git fetch命令執(zhí)行失敗怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供潞城網(wǎng)站建設(shè)、潞城做網(wǎng)站、潞城網(wǎng)站設(shè)計(jì)、潞城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、潞城企業(yè)網(wǎng)站模板建站服務(wù),十年潞城做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
前言
最近在一個(gè)基于 git 的發(fā)布系統(tǒng)中拉取代碼,發(fā)現(xiàn)無(wú)法拉取最新的提交記錄,通過(guò)調(diào)試和查看日志文件找到一行錯(cuò)誤:error: cannot open .git/fetch_head: permission denied
,原因是文件權(quán)限問(wèn)題導(dǎo)致。
問(wèn)題原因
permission denied,應(yīng)該權(quán)限問(wèn)題,到項(xiàng)目 .git 目錄下查看文件的用戶和組:
發(fā)現(xiàn) fetch_head 的用戶和組都是 root 權(quán)限,而發(fā)布系統(tǒng)的運(yùn)行進(jìn)程是 nobody 用戶,所以沒(méi)有權(quán)限執(zhí)行這個(gè) git 命令:git fetch -q –all
解決辦法
于是使用 chown 把該文件用戶和組權(quán)限都改成 nobody,再試就正常了。
排查問(wèn)題
更新分支執(zhí)行的 git 命令如下:
cd /data/vhosts/project && git checkout -q master && git fetch -q –all && git/bin/git clean -fd && git/bin/git reset -q –hard origin/master
最后發(fā)現(xiàn)是其中 git fetch -q –all
出現(xiàn)權(quán)限錯(cuò)誤,這種多個(gè)命令 && 組合的形式即使中間命令報(bào)錯(cuò)了,整體執(zhí)行報(bào)錯(cuò)也不會(huì)輸出錯(cuò)誤,所以日志一開(kāi)始并沒(méi)有提示有什么錯(cuò)誤,后來(lái)把多個(gè)命令從第一個(gè)命令開(kāi)始執(zhí)行,再一個(gè)個(gè)加后面的命令,才定位到問(wèn)題。
讀到這里,這篇“因文件權(quán)限導(dǎo)致git fetch命令執(zhí)行失敗怎么解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。