JavaScript勉強会

JavaScriptの学習日記

Gitで過去のバージョンに戻す(チェックアウト)

今日は、バージョン管理システムのGitを練習してみます。

Gitでチェックアウト(過去の状態を取得)のやり方を学んでみます。

教科書は「わかばちゃんと学ぶ Git使い方入門」という本です。

 

jsstudy.hatenablog.com

 

 

SECTION 06 チェックアウトでコミットを移動してみよう

(p.79)

ファイルの状態を特定の時点に戻す方法はいろいろあるけど、今回はチェックアウトを使ってみましょう。

 

チェックアウトをすると、指定した時点のデータを、作業ディレクトリにロードできる。

 

SECTION 06の内容は、Web版でも閲覧できます。

 

codeiq.jp

 

Sourcetreeの各部名称

Sourcetreeの「樹形図」というグラフについて、各部分の名称を確認してみました。

f:id:jsstudy:20171016184306p:plain

 

画面下の「ログ」タブをクリックすると、画面上に更新履歴が表示されます。

更新履歴の左側に「樹形図」というグラフが表示されています。

樹形図は、丸と線でつながったグラフで、各部を指し示すときの名前がありました。

 

  • 線:ブランチ
  • 丸:コミット

と呼ぶようです。

 

木で例えれば、ブランチが枝で、コミットが葉みたいなもんですかね?

 

(参考)SourceTreeで始めよう! Gitへの乗り換え指南

f:id:jsstudy:20171016184703j:plain

 

過去の状態に戻す

前回、コミットを繰り返して、更新履歴を作りました。

Gitで更新履歴を作成する(コミット) - JavaScript勉強会

 

「okonomi.txt」に、以下の内容が保存されています。各行毎にコミットしました。

お好み焼き粉・水・卵を入れます
キャベツを入れます
もやしを入れます
豚肉を入れます

 

今回、この続きで、チェックアウト(過去の状態を取得)の練習をしてみます。

「豚肉を入れます」より1個前の状態=「もやしを入れます」まで作業した状態に戻してみます。

 

Sourcetreeで、戻したいバージョンの行をダブルクリックします。

ここでは、上から2番目の「もやし」の行をダブルクリックします。

f:id:jsstudy:20171016185416p:plain

 

「作業コピーの切り替えの確認」ダイアログボックスが表示されたら、[OK]ボタンをクリックします。

f:id:jsstudy:20171016185534p:plain

このコミットをチェックアウトすると分離したHEADが作成され、どのブランチにも属さなくなります(すぐに続けて新しいブランチを作成しない限り)。

本当にそれでよろしいですか?そうでなければキャンセルをクリックして別のコミットを選択し直してください。あるしはこれがリモートのブランチなら、‘新規ブランチをチェックアウト’タブを使って新規にローカルブランチを作成することができます。

というメッセージが出てきましたが、今の段階では意味がよく分からないので、スッ飛ばして進みましょうw

 

こんな画面になりました。

f:id:jsstudy:20171016185645p:plain

上から2番目の「もやし」の●が二重丸になり、「HEAD」タグが付きました。

 

HEADとは?

現在作業中のブランチ(樹形図の丸)を「HEAD」というそうです。

 

(参考)

ブランチの切り替え【ブランチ】 | サルでもわかるGit入門

HEADとは、現在使用しているブランチの先頭を表す名前です。

デフォルトではmasterの先頭を表しています。

HEADが移動することで、使用するブランチが変更されます。

 

Git - ブランチとは

現在作業中のブランチを指す HEAD

 

この状態で「okonomi.txt」をテキストエディターで開くと、「豚肉を入れます」の行が消えて、「もやしを入れます」までの状態になりました。

 

お好み焼き粉・水・卵を入れます
キャベツを入れます
もやしを入れます

(=1個前の状態に戻った!)

 

 これで、過去の状態に戻すことができました。

 

最新の状態に戻す

今度は逆に、過去の状態から最新の状態に移動する練習をしてみます。

 

Sourcetreeの更新履歴は、上側が新しくて下側が古い順番で並んでいます。

ここでは、1番上の「豚肉」の行をダブルクリックしてみます。

f:id:jsstudy:20171016191024p:plain

 

この状態で「okonomi.txt」をテキストエディターで開くと、「豚肉を入れます」の行までの状態(最新)になりました。

 

お好み焼き粉・水・卵を入れます
キャベツを入れます
もやしを入れます
豚肉を入れます

 

まとめ

  • Gitで更新履歴の中から、バージョンを指定してそのときの状態を取得する操作を「チェックアウト」という。
  • Sourcetreeのログ画面で、「樹形図」というグラフが表示されており、丸の部分の名称は「コミット」、線の部分の名称は「ブランチ」という。
  • 過去のコミットの行をダブルクリックすると、作業フォルダの中が過去の状態に戻る。
  • 最新のコミットの行をダブルクリックすると、作業フォルダの中が最新の状態に戻る。

 

Gitのチェックアウトを使えば、過去や現在の状態を行ったり来たりできますね。

これで安心して実験ができますw

 

Gitを使うとバージョン管理が楽になりました。

Gitにはいろいろな機能があって、最初戸惑いましたが、「わかばちゃんと学ぶ Git使い方入門」という本のおかげで、各機能の意味がよく分かるようになりました。

これからGitを始める方にはお勧めです!

 

 

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉