尝试跨SMB共享推送时发生Git错误



我在Ubuntu虚拟机上开发代码,在我的团队使用的公共共享服务器上有一个Windows存储库。

Git目前安装在Ubuntu机器上,而不是Windows上。

我在尝试做";git init";在Windows共享文件夹上的Ubuntu中,所以我在Ubuntu中使用";git init";,然后将其复制到Windows服务器上包含该项目的文件夹中。

在Ubuntu中,我做了一个gitclone/run/user/1000/gffs/smb share:server/Repos/demo_trunk/。成功

我可以很好地进行编辑,很好地提交,但当我试图通过类似";git-push原点主控器";,我收到一个错误,说我的共享,/run/user/1000/gffs/smb share:server/Repos/demo_trunk/。似乎不是git存储库,无法从远程存储库中读取。它还说,请确保您拥有正确的访问权限,并且存储库存在。

我已经检查过了,以确保当我这样做时;git remote-v";smb服务器文件夹(/run/user/1000/gffs/smb share:server…./Repos/demo_trunk/.(存在。

此外,在我的Ubuntu机器上进行更改并运行git状态后,输出显示我的分支比"origin/master"领先1个commit,这似乎表明它至少知道与Windows服务器上的内容相比发生了变化。

我完全不知所措,在谷歌上拼命寻找解决方案。看起来这可能是权限问题,但似乎没有什么是我特别需要的。

欢迎提出任何建议。

2021年5月26日

  1. 已安装cifs

  2. 使用cifs创建的挂载驱动器通过Ubuntu虚拟机重新初始化repo。

  3. 在Ubuntu虚拟机上进行编辑、签入编辑。

  4. 冉"git remote-v";

    origin/mnt/cifs/demo/。(提取(

    origin/mnt/cifs/demo/。(推送(

  5. 冉"git状态";

    您的分支比"origin/master"领先1个提交。

  6. 冉"git推送原始主机

    计数对象:4个,完成。

    增量压缩最多使用2个线程。

    压缩对象:100%(4/4(,已完成。

    错误:远程解压缩失败:无法创建临时对象目录

    至/mnt/cifs/demo/。

    [远程拒绝]主机->主

    错误:无法将某些引用推送到'/mnt/cifs/demo/。'

  7. Ran git推送原点/主

    致命:"origin/master"似乎不是git存储库

    致命:'无法从远程存储库中读取。

    请确保您拥有正确的访问权限

    并且存储库存在。

  8. 我还运行了一个gitreset-hard命令(不记得语法(

    这成功地";"回复";回到Windows共享驱动器上的内容。

我在从fritzbox安装cifs共享时遇到了这个问题。

运行strace -f git push时,我仔细查看了一下,发现git正在查找正确的目录。但它未能对HEAD文件执行某些操作,得到了一个Stale file handle-错误作为响应。

...
stat64("/cifs/repo", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
lstat64("/cifs/repo/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0
openat(AT_FDCWD, "/cifs/repo/HEAD", O_RDONLY|O_LARGEFILE) = -1 ESTALE (Stale file handle)
...

如本文所述,添加装载选项noserverino解决了我的问题。

相关内容

  • 没有找到相关文章

最新更新