我刚刚在git服务器(Bitbucket,GitHub等)中创建了我的git repo,我想将我的本地master链接到我的origin master分支。 我不想添加我在项目中拥有的任何当前文件。
在我的项目文件夹中,首先添加我的遥控器:
$ git init
$ git remote add origin git@xxx/project.git
然后,我希望我的本地master分支跟踪我的远程master分支:
$ git push --set-upstream origin master
error: src refspec master does not match any.
error: failed to push some refs to 'git@xxx/project.git'
我也尝试:
$ git branch --set-upstream-to=origin/master master
fatal: branch 'master' does not exist
考虑主分支不存在的情况。然后创建它:
$ git branch master
fatal: Not a valid object name: 'master'.
似乎我无法创建名为“ master”的分支...
话虽如此,我该如何解决呢?
答案 0 :(得分:3)
您需要准备好提交才能推送到任何分支。考虑到您不想在第一次提交中添加任何文件,只需使用--allow-empty
选项执行空提交:
$ git commit --allow-empty -m "Initial empty commit"
您现在可以成功推送主分支:
$ git push --set-upstream origin master
Counting objects: 2, done.
Writing objects: 100% (2/2), 175 bytes | 175.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To xxx/project.git
* [new branch] master -> master
答案 1 :(得分:0)
Git试图使您免受拼写错误的影响,绕过检查并直接设置配置,
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
答案 2 :(得分:0)
关于“与远程存储库同步内容”:只要本地存储库为空(例如:无提交,无目录,无文件),您就无需对远程存储执行任何操作。
git push --set-upstream origin master
在实际创建了第一次提交后,效果也将一样好。
话虽如此,我也习惯于创建第一个空提交作为我的回购的“根提交”。
这可以简化操作,例如,当我意识到在第一次实际提交中添加了太多文件时。
例如:“哎呀,删除secret.conf
,在"secret.conf"
中添加.gitignore
”,现在可以用常规的rebase -i