Git status で メッセージ "Your branch is based on 'origin/ブランチ名', but the upstream is gone." が表示される。

リモートブランチ(上流ブランチ)が削除されたり、名前が変更されて見つからない場合に表示されます。

前準備

リモートブランチの状態を確認します。
$git branch -a -vv
$git branch -avv
git branch -a -vv
【Your branch is based on 'origin/develop', but the upstream is gone.】

$git status
On branch develop
Your branch is based on 'origin/develop', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

nothing to commit, working tree clean

【remotes に develop ブランチがない】

$git branch -a -vv
  develop               87b47c0 [origin/develop: gone] add:test1.txt
  master                87b47c0 [origin/master] add:test1.txt
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master 87b47c0 add:test1.txt

解決策1 追跡をやめる

git branch ローカルブランチ名 --unset-upstream

解決策2 追跡先を変更する

git branch ローカルブランチ名 --set-upstream-to origin/ブランチ名
git branch ローカルブランチ名 -u origin/ブランチ名

解決策3 push

git push -u origin ローカルブランチ名:リモートブランチ名

検証環境

関連ページ