git push error unable to create temporary sha1 filename
阿新 • • 發佈:2019-02-19
問題描述
今天push程式碼 發現git報錯如下
unable to create temporary sha1 filename!
網上找了下 發現幾乎沒有這個問題 有幾個相似的問題 有的說版本庫xxx.git許可權不對 登陸到伺服器上
排查過程
[xxx@xxx xxx]# ll | grep xxx.git
drwxr-xr-x 7 git git 4096 11月 1 19:00 xxx.git
發現許可權沒有問題 git使用者 755許可權 沒有問題 然後我就覺得這不是一個簡單的問題
請繫好安全帶 老司機要轉彎了 非正常問題要用非正常思維來考慮 果然
[xxx@xxx xxx]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 19G 23M 100% / tmpfs 1.9G 0 1.9G 0% /dev/shm
磁碟滿了 shit!
常見情況及解決辦法
感謝同學的提醒 斷電造成的磁碟鎖定也會造成這種問題
在這裡總結一下 git類似unable to write/create的錯誤 基本上都是git伺服器的寫入問題 目前已知的情況如下
1.伺服器磁碟寫滿 導致無法寫入 解決辦法 清理磁碟分割槽
2.系統沒有正常關機導致虛擬磁碟出現檔案系統錯誤 可能只是一個分割槽也節能整個檔案系統被鎖定 在server上 mkdir會提示 Read-only file system!等提示 解決辦法
檢視下磁碟狀態
[xxx@xxx ~]# fdisk -l Disk /dev/vda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00078f9c Device Boot Start End Blocks Id System /dev/vda1 * 1 5222 41940992 83 Linux Disk /dev/vdb: 107.4 GB, 107374182400 bytes 255 heads, 56 sectors/track, 14685 cylinders Units = cylinders of 14280 * 512 = 7311360 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xf0ba90c3 Device Boot Start End Blocks Id System /dev/vdb1 1 14685 104850872 83 Linux
檢視檔案系統型別
[xxx@xxx ~]# mount
/dev/vda1 on / type ext4 (rw,barrier=0)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
修復
重啟系統後使用root進入單使用者模式,執行
fsck.ext3 -y /dev/vda3
注意 ext3的檔案系統使用fsck.ext3修復 ext4檔案系統使用fsck.etx4修復 修復過程有時候會比較長
3.最常見的情況的 也就是版本庫沒有寫入許可權 ll | grep xxx.git 檢查下許可權
[xxx@xxx xxx]# ll | grep xxx.git
drwxr-xr-x 7 git git 4096 11月 1 19:00 xxx.git
首先 目錄使用者及使用者組為git 其次 755許可權 如與上述不一樣請執行
chown -R git.git xxx.git/
chmod -R 755 xxx.git/
如果幫到你 麻煩在下面留個言 如果我描寫的情況跟你的有所不同 麻煩留言告知我一下 我會幫助你解決並完善本為以幫助更多人