我有一个具有功能/初始更改分支的远程存储库。现在,我想将一些文件从本地功能/初始更改分支推送到此远程分支。
我浏览了一些有关推送到远程分支机构的文章,并尝试了几种方法,但是仍然遇到相同的错误。添加并提交后,我得到以下有关git status的信息。
Sakibs-MacBook-Pro:BluFireLabs SakibArRahman$ git status
On branch feature/initial-change
Your branch is ahead of 'origin/feature/initial-change' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
但是当我 push 时,会得到以下信息:
Sakibs-MacBook-Pro:BluFireLabs SakibArRahman$ git push origin feature/initial-change
Counting objects: 255, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (141/141), done.
Writing objects: 100% (255/255), 6.57 MiB | 1.88 MiB/s, done.
Total 255 (delta 49), reused 13 (delta 5)
remote: error: Cannot update the ref 'refs/heads/feature/initial-change': unable to create directory for logs/refs/heads/feature/initial-change: No such file or directory
To git@bitbucket.org:bluefirelabs/fire-voice-droid.git
! [remote rejected] feature/initial-change -> feature/initial-change (failed to update ref)
error: failed to push some refs to 'git@bitbucket.org:bluefirelabs/fire-voice-droid.git'
关于如何解决此问题或我做错了什么的任何想法?提前致谢!
最佳答案
创建两个分支时可能会发生这种情况,一个分支带有斜线/
,另一个分支不带斜杠,其中不带斜杠的分支是另一个分支的前缀。
例子
考虑以下两个有效的分支名称:
feature
feature/initial-change
当您从远程将这些分支获取到本地计算机时,
feature
分支表示为一个文件,feature/initial-change
分支表示为一个名为feature
的目录和一个名为initial-change
的文件。您的操作系统无法创建相同名称的文件和目录:logs/refs/heads/feature
logs/refs/heads/feature/initial-change
解决方法
解决方法是在这种情况下删除
feature
分支:git push --force origin :feature