Git: fatal:The 当前分支 XXX 没有上游分支(但它有上游分支)

Git: fatal:The current branch XXX has no upstream branch (but it HAS the upstream branch)

我们使用 git + Jira + Bitbucket。

场景:

  1. 我在 Jira 中创建了(使用 Create branch 选项)分支 XXX.

  2. 在 Bitbucket 中,我看到分支 XXX 出现在分支列表中。

  3. 修改代码=> git commit.

  4. git push 给出:fatal: The current branch XXX has no upstream branch.

提问:出现这个错误的原因是什么?分支 XXX 上游分支(我在 Jira 中看到这个上游分支 XXX。)

请注意:在出现此错误之前,我使用了 git push,没有附加参数。

UPD0:@RadioSilence 建议使用 git branch -vv 命令!我做到了,它帮助我看到 "the local branch is not tracking the upstream"。 原因(很可能)是我之前对该分支的一些git命令,这显然导致该分支禁用了对上游的跟踪。 (默认情况下,在检查使用 Jira 创建的任何分支后,分支 跟踪上游,因此 git push 不需要额外的 commands/options。)

结果(解):

  1. 我已将导致问题的分支名称从 XXX 更改为 XXX_01

  2. git checkout XXX => 添加更改(通过 git stash apply stash@{0})=> git commit.

  3. git push(没有额外的 commands/options)并且它按预期工作。

P.S。如果有人知道如何无意中禁用分支(使用 Jira 创建)对上游的跟踪,请告诉我们。

如评论中所述,本地分支未跟踪上游。这可以通过运行宁git branch -vv验证。如果本地分支没有列出上游,则运行 git push -u origin XXX.

如果您使用 sourcetree 作为将更改推送到 bitbucket 服务器的界面,请单击终端按钮。然后 运行 以下命令带有需要将更改推送到的远程分支名称。 git branch --set-upstream <remote-branch>