【问题标题】:git push origin [local-branch] tries to push into remote main branch instead of creating a new onegit push origin [local-branch] 尝试推送到远程主分支而不是创建一个新分支
【发布时间】:2016-04-25 05:49:33
【问题描述】:

我已经创建了一个外部存储库,其“主”分支称为 develop(而不是 master),并在此 develop 分支上进行了多次提交。
现在我想创建初始外部存储库的 develop 分支的新分支(而不是我分叉和工作的那个 develop 分支),以便在没有我以前从头开始的更改的情况下工作,如下所示:

  • git fetch upstream(获取国外repo的最新副本)
  • git checkout -b "my-new-branch" upstream/develop(从upstream/develop创建一个新分支)
  • git push origin my-new-branch(将分支推送到我在 github 上的远程仓库)

所以我创建了一个名为 fix-3894 的本地分支,但每当我使用“git push origin my-new-branch”命令时,我都会得到以下输出:

! [rejected]        fix-3894 -> develop (non-fast-forward)

基本上,它不是将这个本地新分支转移到远程存储库上,而是尝试将其推送到它前面的开发分支中,自然会面临拒绝。我最终想要的是在我的远程存储库上拥有两个分支,开发和修复 3894。

我对分支如何工作的理解不正确吗?我一直在进行大量搜索,但没有找到与我的情况相符的内容。

【问题讨论】:

    标签: git github merge branch git-branch


    【解决方案1】:

    您可以执行git branch -avv 来查看my-new-branch 是否有origin/develop 作为上游分支。那会很奇怪,可能与origin refspec有关。

    如果要强制上游分支,请执行:

    git push -u origin my-new-branch:my-new-branch
    

    【讨论】:

    • 强制上游分支好像已经搞定了,谢谢。
    猜你喜欢
    • 2017-04-25
    • 1970-01-01
    • 2019-05-09
    • 2013-08-15
    • 2015-08-14
    • 2015-08-27
    • 2018-12-22
    • 2014-02-04
    • 2011-09-10
    相关资源
    最近更新 更多