リカバリ

昨日ごにょごにょしてたソレについて復旧というか今後の方針含め以下な方向でナニ。

  • 作業リポジトリの現状は以下
    • 一つは branch してて作業途中のものは破棄されている
      • 歴史は以下なカンジ
           fix-bugs
           v
       o---o
      /   /
     o---o
    /
---o--o
      ^
      master
      • こちらの master を歴史の先端にしたい (巻き戻し
    • もう一つは branch してなくて (元々の形) 作業途中の状態も commit されている

方針としては、

  • 歴史は巻き戻す
  • ただし、branch してない方の最先端の commit の一部を盛り込む必要あり
    • merge とか patch とかしない方向 (binary なデータだったりして
  • 元の歴史 (branch してない方) もバックアップ保管
  • 今後は作業途中のリポジトリを共有リポジトリでない所に push してバックアップする
  • 共有リポジトリへのデータ投入について
    • fix したもののみを盛り込む
    • 作業リポジトリについても基本的には branch して作業する

という事で

まず、バックアップな試験をしてみた。リモートなホストにて

$ git init --bare --shared

しといて、作業リポジトリ側にて

$ git push fuga@hoge:/home/fuga/backup.git master

でデキました。clone も大丈夫。こっちの先端にある一部の修正が必要なので、作業リポジトリはもう少し取っておく事に。
次は branch がある方ですが、こちらも同様に新たにリポジトリを作成して master のみを push

$ git push fuga@hoge:/home/fuga/backup.master.git master

こちらも clone してみて状態確認。見事に branch は除去されております。