我试图克隆一个回购。 (GitLabs如果重要的话)
命令: git clone user@machine.com:user / project
从OS-X开始就像一个冠军一样,但它会在Windows上出现错误: 在Windows上找不到git-upload-pack:命令
现在,显然,我已经看到这里的消息说我只需要将它添加到Ah,Remote上的路径(由于我可以从OS-X克隆得很好,因此可以正确配置)这是在新VM上开箱即用的GitLabs安装。)
我已经看过一些消息,说我需要将它添加到Local Windows机器上的路径中。是的,做到了。我可以从命令提示符或git bash shell运行它,没有任何问题。 (运行git-upload-pack命令)
并且' git --exec-path'回来了 C:/ Program Files / Git / mingw64 / libexec / git-core
其中当然有程序。
显然,程序应该告诉我哪一方失败了,但事实并非如此。在我看来,'上传'必须在gitlabs方面,因为那是正确上传内容的一方吗?我还尝试在本地创建git repo并尝试将其连接到遥控器,但它说我没有远程设置,并且给我一个执行失败的命令。
git push origin 致命的:当前的分公司主人 没有上游分支。要推送当前分支并设置远程 作为上游,使用
git push --set-upstream origin master
git push --set-upstream origin master 错误:src refspec master与任何匹配。错误:无法将某些引用推送到 ' User@system.com:remoteuser表/ project.git'
有什么想法吗?
更新:我编辑了gitlabs提供的ssh值:' git @ ...'我误认为应该是user @,将其改回' git@machine.com:user / project'我能够正确克隆回购。此外,它还带回了(正如人们希望的那样)不允许的命令'如果我尝试了--upload-pack命令行参数。
答案 0 :(得分:0)
git fetch-pack
命令在将克隆传送到客户端的服务器上运行。
当您在客户端上运行git clone
或git fetch
时,您可以 - 但不应该 - 添加参数:
--upload-pack <path>
这会将路径传递到下一层,即服务器上运行的git fetch-pack
。因此,您所看到的错误表明,当有人从OS X克隆时,无论运行什么机器,Gitlab服务器都运行git fetch-pack
成功运行git upload-pack
- 可能是因为用户的$PATH
? 1 - 运行git clone
的Windows框中的相同或另一个用户导致同一个Gitlab服务器运行git fetch-pack
,但找不到git upload-pack
。
就我在这里所说的那样,我可以用这个问题来诊断这个问题。
作为Code-Apprentice said in a comment,如果您在不使用git clone
的情况下创建存储库,则应使用git remote add
添加远程数据库。 (git clone
命令基本上是git init
,然后是git remote add
,后跟git fetch
,并根据需要在中间插入一些其他Git项目;然后在最后,clone
执行git checkout
。)
1 这显然取决于服务器上的操作系统和软件。