1. ホーム
  2. git

[解決済み] fatal: 現在のブランチの上流ブランチが現在のブランチの名前と一致しません。

2022-12-17 13:41:30

質問

リモートブランチのチェックアウトを行った後 releases/rel_5.4.1 をチェックアウトした後、Git GUI でこのような予期せぬエラーメッセージが表示されました。 push :

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:releases/rel_5.4.1

To push to the branch of the same name on the remote, use

    git push origin rel_5.4.1

Gitが何を言っているのかわからない。私はおそらく、プッシュして origin releases/rel_5.4.1 にプッシュしたいのでしょう。このブランチは私がチェックアウトしたものだからです。というわけで、どちらの選択肢も私には正しいとは思えません。

git status は私がブランチにいると言っています rel_5.4.1 .

以下は、私の .git/config :

[branch "rel_5.4.1"]
    remote = origin
    merge = refs/heads/releases/rel_5.4.1

何が起こっているのでしょうか?

どのように解決するのですか?

あなたのローカルブランチは rel_5.4.1 という名前ですが、リモートブランチは releases/rel_5.4.1 になります (Gitに関する限り / は、人間の目にとって読みやすくなること以外、ブランチ名に特別な意味を持ちません)。

プッシュするとき、Gitはあなたがブランチを releases/rel_5.4.1 (リモートブランチの名前) にプッシュしたいのか、それとも新しいリモートブランチを作りたいのかに注意します。しかし、名前の類似性には注意を払います。

新しいブランチを作成したいのでなければ、正しいコマンドは

git push origin HEAD:releases/rel_5.4.1

を使うこともできます。

git push origin rel_5.4.1:releases/rel_5.4.1

警告を完全に修正するには、ローカルブランチの名前をリモートの名前と一致するように変更します。

git branch -m releases/rel_5.4.1