git push to local ssh server失败了几次然后成功

时间:2017-12-10 00:23:44

标签: linux git ssh server push

我正在尝试为lan网络设置一个git服务器,该网络包含一些工作站(Windows)和一台由路由器连接的NAS。
服务器本身是一台专用的Ubuntu机器,安装了ubuntu-desktopopensshgit,并且已经获得静态本地IP。它还从NAS挂载一个文件夹来保存repos到目录/media/repos;安装似乎工作正常。
在Windows工作站上我安装了“Git for windows” 我创建了一个组gitusers,并为/media/repos目录分配了适当的权限 然后我创建了2个新的ubuntu用户,从他们各自的工作站设置了ssh个连接(我从2开始只用于测试,但在我看来,本地网络中的每个工作站应该有自己的用户ssh到)。我还将这些用户分配到gitusers组 之后,我在/media/repos/testproject1目录中的服务器上做了一个简单的回购:

git init --bare --shared=group

在工作站上我成功地克隆了这样的回购:

git clone firstuser@192.168.1.47:/media/repos/testproject1

在我push之前,一切似乎都运转良好:

$ git push
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 331 bytes | 331.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: unable to create temporary file: Operation not permitted
remote: fatal: failed to write object
error: remote unpack failed: unpack-objects abnormal exit
To 192.168.1.47:/media/repos/testproject1
 ! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to 'firstuser@192.168.1.47:/media/repos/testproject1'

但是如果我再次尝试push几次,它会突然成功:

Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 331 bytes | 331.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.1.47:/media/repos/testproject1
   ba2b2a7..a798d28  master -> master

一旦推送成功,我就可以毫无问题地拉/克隆/获取更新的回购。当然推送命令仍然存在问题 我担心安装的NAS文件夹中可能存在问题,如下所述:https://stackoverflow.com/a/24173942/9072069 但这个答案本身建议设置一个ssh服务器来避免这个问题......这不是我刚刚做的吗? 感谢。

编辑:为了澄清,网络配置如下:

    N---R---+---+---+---
            |   |   |
            W   W   S

其中N = NAS,R =路由器,W =工作站(有2个以上),S =服务器。 从工作站我执行像这样的git命令(192.168.1.47是服务器的IP):

git x user@192.168.1.47:path-to-repo

通过使用以下内容编辑文件/etc/fstab已将NAS安装在服务器上(其中1001是组gitgroup的ID):

//192.168.1.47/share /media/repos cifs credentials=/home/username/.smbcredentials,iocharset=utf8,gid=*1001*,uid=*1000*,file_mode=0777,dir_mode=0777 0 0

0 个答案:

没有答案