创建回购协议后,如何将本地主节点指向没有提交文件的原始主节点?

时间:2018-10-14 19:15:00

标签: git

我刚刚在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”的分支...

话虽如此,我该如何解决呢?

3 个答案:

答案 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

完成