ただまだまだ使いこなせている気がしません。
先日もちょっと困った場面に出くわしました。
gitで過去に戻ることはよくあります。
$ git logで表示されるcommitのハッシュ値のうち
欲するバージョンのものをメモしておいて、
$ git checkout <ハッシュ値>とすればいいだけです。
そこからさらに過去に戻るには同様にすればいいのですが、
"git log"で出てくるのはその時点より過去だけなので、
そこから未来の指定されたバージョンに進むには、
予め未来で"git log"の結果を保存しておき、
そのハッシュ値を指定してcheckoutすることになります。
うーん、わけわかんない、なんかタイムパラドックスが起きてそう。
では、一旦過去に戻ってから
完全に最新の未来に戻るにはどうしたらいいのか?
まさに「バック・トゥ・ザ・フューチャー」です。
私はこれまでは新たに
$ git cloneし直していました。
ただ先日、色々と都合があって
cloneせずになんとかしたい場面に直面しました。
で、調べてみたところ
$ git checkout <過去にチェックアウトしたブランチ名>で戻せると。
今ひとつ理解できなかったのですが、
$ git branch -aの結果をみてなんとなく分かりました。
実は
$ git checkout <ハッシュ値>を実行した瞬間にテンポラリのブランチが作られ、
そちらの世界線に飛んでしまったようで、
$ git checkout <過去にチェックアウトしたブランチ名>によって元の世界線に戻るということのようです。
まあ無事に未来に戻れてよかった。
0 件のコメント:
コメントを投稿