【问题标题】:Push git commit without a branch无分支推送 git commit
【发布时间】:2026-01-01 12:15:02
【问题描述】:

在 Git 中,我可以使用以下语法将特定的提交推送到特定的远程分支:

git push remote COMMIT:branchname

但是,这仅在存在引用 COMMIT 的本地分支时才有效。有没有办法对提交进行推送,即使没有引用它的引用?

【问题讨论】:

  • "引用 COMMIT 的本地分支" 是什么意思?如果未引用提交,则它在 GIT 中不存在
  • 这不太正确,@Edward。实际上,限制是远程分支必须存在才能推送......但我什至不确定这个限制是否正确。
  • @Liam,我猜他的意思是必须有一个分支指向修订版。
  • 直接还是间接?这听起来像你有一个孤立的提交,你试图强行进入图表。这个问题需要很多更多上下文
  • 一旦你这样做了git init,你将拥有一个名为 master 的本地分支。没有默认分支就无法进行提交。

标签: git


【解决方案1】:

分支名称的完整拼写是refs/heads/branchname。当你推送时,如果目标引用不是以 refs/ 开头,Git 通过查看你推送的内容来确定你的前缀是什么。但是如果那里有一个裸提交,它就没有什么可继续的了,所以你必须明确指定目标 ref 的完整拼写:

git push origin 54adf:refs/heads/branchname

【讨论】: