質問: #### 経緯 リモートにあるhogeブランチを以下のようにチェックアウトしてしまい、コミットもしてしまいました。 ``` > git checkout -b origin/hoge ``` これで、ローカルにorigin/hogeというローカルブランチが出来てしまい、コミットをした後、ブランチ名を間違えたことに気づいてリセットしようと思い、ローカルブランチとトラッキングブランチorigin/hogeを削除しました。 ``` > git branch -D origin/hoge > git branch -dr origin/hoge ``` しかし、remote/origin/hogeの消し方がわからず、再度リモートブランチをチェックアウトしようとしても以下のようなエラーが出る始末になってしまいました。 ``` > git branch -a *master remotes/origin/HEAD -> origin/master remotes/origin/hoge remotes/origin/fuga ... > git checkout -b hoge origin/hoge fatal: 'origin/hoge' is not a commit and a branch 'hoge' cannnot be created from it ``` 再度fetchしても何も変化はなく、remotes/origin/hogeだけが残っている状況で上記のリモートブランチにもチェックアウトできず困っております。 どうすれば、初めの状態にリセットすることが出来るでしょうか?
回答: > > リモートにあるhogeブランチを以下のようにチェックアウトしてしまい、コミットもしてしまいました。 > > > `checkout -b `はリモートのブランチをcheckoutする操作ではありません。 現在のヘッド(最新コミット)から新しい名前でブランチを作り、そこにcheckout(現在のブランチを移す)です。 また、remote/origin/hogeが存在するならコミットだけでなく、pushもしてしまった感じですね? > > 再度fetchしても何も変化はなく、remotes/origin/hogeだけが残っている状況で上記のリモートブランチにもチェックアウトできず困っております。 > > > 「リモートリポジトリにあるブランチを削除する」という操作になります。 このあたり見るとわかるかと。 https://yu8mada.com/2018/08/13/how-to-delete-both-local-and-remote-branches-in-git/#content-2 全体的に用語が混乱しているので、あまりGitの仕組みに詳しくないのかなと感じました。リモートリポジトリ・ローカルリポジトリについてもう少し調べれば操作が理解できるようになる気がします。