windows - Git 扩展 - 无法推送到 Windows 网络驱动器中的 git 裸存储库

标签 windows git git-push git-extensions

我正在 Windows 上学习 git,我已经安装了 Git Extensions(版本 2.47.3)并尝试了一下。我在我的 C: 单元中创建了一个裸存储库(作为中央存储库),并在我硬盘的其他任何地方创建了一个个人存储库。

我在我的硬盘中提交、推送和 pull 这两个 repos 没有任何问题。

现在我已经创建了一个新的裸中央存储库,它不在我的硬盘中而是在网络驱动器中,比方说://myShare/centralRepo/和一个新的个人存储库(本地硬盘)。 我第一次在我的 master 分支上的个人存储库中提交,并创建了一个名为 develop 的新分支。然后我想推送到我的中央仓库,问题来了。

它开始这个过程,写入对象直到 73% (17/23) 挂起一段时间,然后显示错误:

"C:\Program Files (x86)\Git\bin\git.exe" push --recurse-submodules=check --progress "//myShare/centralRepo/" refs/heads/master:refs/heads/master
Counting objects: 23, done.
Delta compression using up to 4 threads.
fatal: sha1 file '<stdout>' write error: Broken pipe
remote: error: unable to create temporary file: File exists[K
remote: fatal: failed to write object[K
error: failed to push some refs to '//myShare/centralRepo/'
Done

我在谷歌上搜索了很多,并且已经在堆栈溢出中进行了搜索,但没有找到任何线索。我尝试了不同的位置和文件夹,不同的网络驱动器,结果总是一样的。我错过了什么吗?

谢谢

最佳答案

问题是我在 Novell 网络下,如果我使用自动映射驱动器,推送会失败。

这篇文章给了我线索:http://git.661346.n2.nabble.com/Problem-pushing-to-a-Novell-share-td7248875.html

问题似乎是,如果目录不存在,Novell Networks 会抛出错误 80“文件存在”,而实际上应该是错误 3“找不到路径”。这一切都发生在 sha1_file.c 的 create_tmpfile() 函数中

这里又讨论了一次Git push fail to a Windows share

因此解决方法是使用映射驱动器的 IP 地址(作为远程存储库)而不是使用它的 UNC path或分配的驱动器号。

关于windows - Git 扩展 - 无法推送到 Windows 网络驱动器中的 git 裸存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637822/

相关文章:

windows - Qt交叉编译

git - 为什么 `git diff` 不调用外部差异工具?

git - 是否可以在两个工作站之间使用 Git,而无需 "central"存储库?

未找到 GitHub 错误存储库

git push 在 HTTP/1.1 100 之后卡在(哑)https 上继续

c++ - 如何启动具有特定访问权限的子进程

windows - 查找并模拟点击系统托盘图标?

c++ - 无法安装 Visual Studio C++ 包含文件 'excpt.h'

git - 为什么 .git/hooks 有时会在克隆的存储库中丢失?

git - 如何使用 grunt-mocha-cov 确保 git 提交的 100% 代码覆盖率