【问题标题】:How to delete a branch that ends in a period如何删除以句点结尾的分支
【发布时间】:2026-01-26 22:00:02
【问题描述】:

不知何故,我的一位同事能够创建一个以句点结尾的分支。我不确定他是怎么做到的。现在在使用他的遥控器时会出现问题。

错误的分支是:'bugfix_ESP-924-invalid-email-error-message.'

当我执行git fetch taylor 时,它会挂起。

当我列出分支时,期间是不可见的

git branch -r | grep 924
taylor/bugfix_ESP-924-invalid-email-error-message

如果我尝试删除没有句点的分支,我会得到 404(有意义)

git push origin :taylor/bugfix_ESP-924-invalid-email-error-message
error: unable to delete 'taylor/bugfix_ESP-924-invalid-email-error-message': remote ref does not exist

如果我尝试删除真正的分支名称,我会得到一个“无效的分支名称”

git push origin :taylor/bugfix_ESP-924-invalid-email-error-message.
fatal: remote part of refspec is not a valid name in :taylor/bugfix_ESP-924-invalid-email-error-message.

有什么建议吗?

【问题讨论】:

  • 我遇到了这个问题!
  • 我很惊讶 git 在分支名称以 '.' 结尾时存在问题——但显然确实如此。我想知道为什么。
  • 看起来你(或他)将不得不直接在他身边解决这个问题:显然 fetch 剥离了尾随句点,push 不会让你指定它。
  • 分店在哪里?怎么样: - 创建一个新的裸存储库。 - 获取除具有非法分支名称的远程之外的所有远程。 - 手动替换存储库。

标签: git


【解决方案1】:

分支只是提交的链接。它存储在.git/refs/heads/branchname 中。如果您可以直接访问远程,只需删除该文件。但请先做好备份。两个备份更好:)

【讨论】:

  • 我可以在本地删除它但是如何将它推送到上游服务器?
  • 我的意思是通过 SSH 连接到 taylor