git 将新文件推送到裸存储库失败:"error: src refspec master does not match any."为什么?



我正在尝试:

mkdir ~/gitremote
cd ~/gitremote
git init --bare

我可以看到

之类的文件名
HEAD        config      hooks       objects
branches    description info        refs

好,然后在另一个目录中,

git clone trosky@localhost:/Users/trosky/gitremote
vi readme (add one line)
git add .
git commit -m "1st file"
git push origin master

然后给出一个错误:

$git push origin master
error: src refspec master does not match any.
error: failed to push some refs to 'trosy@localhost:/Users/trosky/gitremote'

我搜索了Google,它说这种错误是由于远程存储库上的空文件夹。但是远程存储库不是空的,在当地,我也会犯一个没有空的文件。为什么此错误仍然提示?

如何修复它?谢谢。

尝试使用语法:

git push -u origin master

由于您要推到空存储库,因此您需要明确推动master
否则,默认的push.policysimple,GIT将在您的远程回购中寻找一个名为master的分支(并且由于您的遥控裸仓库为空,因此尚无master分支)

当然,您在遥控裸仓库中不会看到任何读书我,因为它是裸露的回购:没有工作的树。

'git克隆/用户/trosky/gitremoe'和'git clone'trosy@localhost@localhost:/users/trosky/gitremote'

有什么区别

一个人使用的文件协议也称为本地协议,另一个SSH协议。您不需要SSH。

您可以使用git clone /Users/trosky/gitremote

git clone /Users/trosky/gitremote使用本地协议。因为您的remoterepo在您的本地PC上,因此本地协议合适且快速。

git clone 'trosy@localhost:/Users/trosky/gitremote'用于 scp 传输主要用于不同设备数据传输的数据。

推到远程存储库后,您可以转到"远程回购文件夹",但找不到推送的文件。但这实际上存在。因为 Bare Repo尚未工作目录。它存储在/Users/trosky/gitremote/objects中。您可以检查/Users/trosky/gitremote/refs/heads/master中的提交SHA-1是否符合本地仓库。

相关内容

  • 没有找到相关文章

最新更新