git push error unable to create temporary sha1 filename

问题描述

今天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!


常见情况及解决办法


感谢mingdh258同学的提醒   断电造成的磁盘锁定也会造成这种问题

在这里总结一下    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/ 

如果帮到你  麻烦在下面留个言  如果我描写的情况跟你的有所不同 麻烦留言告知我一下 我会帮助你解决并完善本为以帮助更多人

 


 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值