【GitHub】過去のコミットから別ブランチを作成

プログラミング

目的

WEBアプリケーション作成において、これまでは別ブランチを作成せずに(ずっとmasterブランチで)Gitでバージョン管理していました。

ですが、本流のmasterブランチには変更を加えず、過去のコミットから別ブランチを作成してやり直したくなる場面がありましたので、備忘録を兼ねてそのときコマンドを記録しておきたいと思います。

下記イメージのように、過去のコミットであるCommit 1からmasterブランチに変更を加えることなく、testブランチを作成したい、という状況です。

コマンド

まずはGitHubのリモートリポジトリのクローンをローカル環境に作成します。ここの”other”は、ローカルのディレクトリ名です。

$ git clone https://github.com/ユーザ名/******.git other

次に、ローカルのotherディレクトリにおいて、別ブランチ(testブランチ)を作成し、移動します。

$ git checkout -b test

testディレクトリは、Commit 3まで進んでいる状態なのでCommit 1まで戻りたいので、過去のコミット履歴を確認。

$ git log --oneline

戻りたいコミット番号までリセット(resetコマンドは、特に共同開発の現場で要注意)。

$ git reset --hard ******

Commit 1の状態から所望の修正を施して、ステージ・コミット、そしてtestブランチをプッシュ。

$ git push origin test

これでGitHub上で別ブランチの作成完了。

※間違いやより良い方法等があれば、ご指摘いただけますと幸いです。

その他(heroku)

herokuアプリの削除コマンド

$ heroku apps:destroy --app アプリ名 --confirm アプリ名

herokuにtestブランチを反映

$ git push heroic test:master