当サイトは、アフィリエイト広告を利用しています

Github|main(master)ブランチを削除してしまった話と対処法

WordPressテーマの開発中、9割実装は完了して修正対応中に事件は起きた。Githubもだいぶ使い慣れてきたな〜って時の出来事。

ローカルでブランチ切ってpushし、プルリク作成しリモートにマージという流れで作業していました。

リモートにマージしたのでmainブランチでpullしようとして気がついた。
git pull したのにリモートの内容が反映されていないぞ・・・?」と。

そして返ってくるメッセージと記憶を辿っていたところ、mainブランチをリネームしていた(ような気がする)ことに気がつきました・・・😨 チーン。

なにをやらかしたのか → mainブランチをリネームした挙句削除

最近ブランチ名を変更するコマンドを覚えて多用していたんですね、これ。
ブランチ作成するの忘れて元のブランチで作業始めてしまうことがよくあったので、めちゃ便利じゃん!と・・・。

# ブランチ名を変更する
git branch -m [ブランチ名]

で多分いつものノリでmain(master)ブランチもリネームして、多分おまけに使い終わって削除までしてしまったと思われます・・・😇

まさかmainブランチが他のブランチと同じテンション感で操作できると思わないじゃんね・・・🥺

どうなったのか

とりあえず状況がわからなかったのでいろんなコマンドを実行してみた。

git pullしてみた

git pullして戻ってきたメッセージは正常っぽいのだけど、内容がリモートリポジトリと一致しない。どうも古い内容が反映されているっぽい・・・?

git diffしてみた

git diff すると差分がある。でもこれも内容見てもいつの差分って感じの差分。

git statusしてみた

返ってきたメッセージはこちら。
‘origin/dreawer_fix’ ブランチよりも14個のコミットが進んでいるよってことらしいんだけど、dreawer_fixってもうだいぶ前に不要になって削除したブランチなんだけど。。

On branch main
Your branch is ahead of 'origin/dreawer_fix' by 14 commits.
  (use "git push" to publish your local commits)

※ちなみにこの時にいたmainブランチは、次の章「試したこと」で書いている通り自分で作ってみたmainブランチ。

試したこと

①リモートにdreawer_fixブランチが残っていたので削除してfetchしてみた
→変化なし

②mainブランチがないことに気がついたので、mainブランチ作ってみた
→変化なし

この辺りで、mainブランチが原因だろうな、って思い始めた。。

最終的にこれで対処しました

単純にmainブランチ作っても、リモートリポジトリのmainと紐付けるための設定が足りていないんだろうなーと思って調べたら見つけた。

既存のローカルブランチとリモートの origin/master ブランチを紐付けるコマンド↓

git branch -u origin/main

で、この後に今回はローカルリポジトリとリモートリポジトリの内容を同期させたかった(ローカルの編集を破棄したかった)ので、下記コマンドを実行。

git reset --hard origin/master

これでようやくローカルリポジトリとリモートリポジトリの内容が一致しましたーーーーーーーーー!

つぶやき

何事も慣れ始めた頃がミスしやすい。。
Gitは便利な反面、使い方ミスると立て直すまでに時間かかる。。もっとGitと仲良くなれるように頑張ります。。

RELATED POST

関連記事

【コピペでOK】CSSで強調したい文字の上に点をつける|コード解説付き
【コピペで簡単|JavaScript】ローディングを初回アクセス時のみ表示させる(ライブラリ不要)
【Git/GitHub】チーム開発をするようになった私がよく使うGitコマンド一覧