こんにちは、decoponです。
Git初心者の頃の私が、「ブランチ名の落とし穴」にハマった話です。
SourceTreeで操作していたら、pushしようとしたブランチ名が origin/origin/fix-login
になっていて、
「え?originが2回?どこにpushされるの?」と混乱しました。
この記事では、
- なぜそんなブランチ名になったのか
- どうやって修正したか
- 今後同じことを防ぐためのポイント
をまとめておきます。
🌀 何が起きたのか
❌ やってしまった操作
- SourceTreeで
origin/fix-login
を選択して「新しいブランチを作成」 - そのまま push したら、
origin/origin/fix-login
というブランチ名でリモートに作成されてしまった
🤯 結果
- GitHub上に
origin/origin/fix-login
というブランチが出現 - チームメンバーから「これ何?」と聞かれて冷や汗…
🔍 原因と仕組み
✅ origin/xxx
は“リモートのブランチ”を指す名前
-
origin
はリモートリポジトリの名前(通常GitHubなど) -
origin/xxx
は「リモートにある xxx ブランチ」の意味 - それをそのままブランチ名にしてしまうと、
origin/origin/xxx
という名前のローカルブランチができる
✅ SourceTreeのUI操作で起きやすい
- リモートブランチを選択して「新しいブランチを作成」すると、その名前がそのまま使われてしまうことがある
- 特に初心者は「origin/xxx」がブランチ名だと勘違いしやすい
🛠️ 対処法:ブランチ名の修正
✅ ローカルブランチ名を変更
git branch -m origin/origin/fix-login fix-login
✅ 正しいブランチ名でpushし直す
git push origin fix-login
✅ GitHub上の不要なブランチを削除
git push origin --delete origin/origin/fix-login
🌿 今後の予防策
対策 | なぜ有効なのか |
---|---|
origin/xxx は参照表記と理解する |
リモートブランチを指しているだけで、ブランチ名ではない |
ブランチは git checkout -b 新規名 origin/main の形式で作成 |
名前の重複や混乱を避けられる/元ブランチを明示できる |
SourceTreeでブランチ作成時は手動で名前を修正する | UI操作では誤って origin/ 付きのブランチが作られることがある |
チームで命名ルールを共有・統一する | レビューや履歴追跡がしやすくなる/新人の混乱も防げる |
不要なブランチは push後すぐに削除する習慣をつける | ブランチ一覧の可読性維持/事故の予防につながる |
🐻 おわりに
Gitのブランチ名って、ちょっとした操作ミスで“謎の名前”が生まれることがあるんですよね。 でもそれは、Gitの仕組みを理解するきっかけにもなるし、 Qiitaに書くことで、同じことで困ってる誰かの助けにもなると思っています。
🧸:「originは“場所”であって、“名前”じゃないんだよ☁️」
この記事が、誰かの「Gitで混乱しないためのヒント」になりますように🌟