Skip to content

Instantly share code, notes, and snippets.

@hashcc
Created January 13, 2015 16:53
Show Gist options
  • Save hashcc/c4c3b81ca9f694de9011 to your computer and use it in GitHub Desktop.
Save hashcc/c4c3b81ca9f694de9011 to your computer and use it in GitHub Desktop.
リポジトリを先祖返りさせてしまった顛末の振り返り

先刻、某コミュニティのリポジトリを先祖返りをさせてしまう失敗をしてしまったのだけど、ちょっと繰り返したくないことなので原因を振り返ります。

まず、ファイル更新前に最新版に更新しようと思い、

$ git pull --rebase

  • しかし、レポジトリにアップされていた一部ファイルがダウンロードされていなかった。
    • この時、ブランチをmasterから切り替えていたからなのだけど(切り替え先をupdateブランチと呼称)、切り替えていたからそうなることに気づいていなかった。
    • → 一度ブランチを切り替えるか、git pull --rebase origin masterと指定すればよかった
  • ダウンロードされていなかったので、自分でファイルをダウンロードして配置
  • 自分としてはmasterと同じものを置いたので配置分のコミットは当然無いものと思っていたけど、当然、コミット時にupdateブランチになかったものが追加されているわけで、git commitで大量のコミットが登録される
  • この時は特にcommit/pushを行わなかったのだけど、時間を置いてpushした時に、このcommit分がpushされてしまった
  • このcommitを取り消したいなと思い、ぐぐって見つけたブログで git resetを行う

$ git push -f origin HEAD^:hogehoge

  • こちらでupdateブランチをresetするつもりが、masterブランチをresetしてしまっていた・・
    • コマンドを雑に打ちすぎ。重要な操作はきちんと確認してから行う・・

というわけで、手順誤認とそれに対する対処方法のミス・雑さが産んでしまった事故でした。 あんまりgit操作に詳しくない状態なので、わからない時はちゃんと聞こうという教訓です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment