我正在尝试:
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.policy
为simple
,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是否符合本地仓库。