git - 推送到远程分支(更新 ref 失败)

标签 git repository push branch bitbucket

我有一个带有 feature/inital-change 分支的远程仓库。现在我想将一些文件从我的本地 feature/initital-change 分支推送到这个远程分支。

我浏览了一些关于推送到远程分支的帖子并尝试了一些方法,但我仍然遇到同样的错误。添加并提交后,我得到以下 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

但是当我推送时,我得到以下信息:

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/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

关于git - 推送到远程分支(更新 ref 失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37174130/

相关文章:

git - 从 git 历史记录中删除已删除的文件夹

java - 尝试使用 Spring Data JPA 创建自定义存储库时未找到类型错误的属性

git pull 到指定目录

Git 推送错误 - 无法解析主机名

git:如何从项目中分离出库?过滤器分支,子树?

git - Heroku git 推送 - "fatal: the remote end hung up unexpectedly"

svn - 将文件夹从一个 SVN 存储库移动到另一个

c# - 使用存储库替代 Asp.net MVC

C — 如何使我的堆栈完全动态化?

git - 如何配置系统通过 ssh 反向隧道/代理使用 git?