【问题标题】:Push HEAD to remote branch, without having a local branch [duplicate]将 HEAD 推送到远程分支,没有本地分支 [重复]
【发布时间】:2020-06-11 01:40:04
【问题描述】:

是否可以将签出历史记录(分离的 HEAD)推送到远程分支,无需签出本地分支?

如果我需要相应的本地分支,我可以稍后在本地签出远程分支。我不需要跟踪它;而且我不想使用标签。

我试过 git push my_remote HEAD:my_remotebranch_namegit 告诉我:

错误:无法推送到不合格的目的地:my_remotebranch_name 目标 refspec 既不匹配远程上的现有 ref,也不以 refs/ 开头,我们无法根据源 ref 猜测前缀。

如何实现?

【问题讨论】:

  • 您需要在当前存储库中的某个分支上才能推送(例外:如果您是第一次推送到空仓库,则不需要远程存在任何东西,但即使在这种情况下,你仍然会在某个分支上)。
  • git push my_remote HEAD:refs/heads/my_remotebranch_name
  • @phd 感谢您的发现!伟大的! ???您可以添加一个答案,以便我可以接受(明天?),或者您可以为重复投票(但我认为这里的问题标题比您链接的问题更清楚地说明了用例)。
  • @Kamafeather 我已经投票支持 dup。

标签: git workflow git-branch git-push git-remote


【解决方案1】:

解决方案是为远程分支使用完全限定名称,以消除歧义,而不是让 git 尝试猜测。

git push my_remote HEAD:refs/heads/my_remotebranch_name

如果 HEAD 处于分离状态(这是我的情况),这将起作用。

谢谢@phd。

【讨论】:

    【解决方案2】:

    我不确定我是否完全理解您的问题。这就是我的理解:您希望将本地 git 头上的更改推送到远程分支,而不是实际在本地创建新分支。

    我试过这样做。我拉了一个仓库,做了一些更改并运行:git push origin master:dummygit push origin HEAD:dummy2

    而且效果很好。它会在您的远程仓库中创建一个新分支并将更改推送到那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-25
      • 2021-09-13
      • 1970-01-01
      • 2015-04-02
      • 2012-03-30
      • 2021-07-14
      • 2018-10-02
      • 2017-03-08
      相关资源
      最近更新 更多