過去の状態に戻ってみよう
過去のコードの捜索の仕方いろいろ
コードを探るにあたって、いくつかよく使うテクニックを紹介します。
コミットにチェックアウト
「ブランチにチェックアウトする」という概念を学びましたが、実はチェックアウトは、「コミット」の単位で行なえます。
「ブランチにチェックアウトする」とは、暗黙的に「ブランチの最新のコミットにチェックアウトする」ということと同じということです。
コミットにチェックアウトをすると、ブランチ(プロジェクト)のフォルダごと、コミットの時点までタイムスリップします。
IDEのリファクタ機能が使えるので、詳細なコードの依存先を確認することが出来ます。
Git Graphでコミットにチェックアウトするときは、コミットのタイトルを右クリックして「Checkout」を選択します。
コミットの検索
Git Graphでも検索ボタンからコミットを検索することができますが、Git Historyの方が、ブランチや担当者での絞り込みの機能などがあり、便利なことがあります。
ソース管理ペインの以下のボタンでGit Historyを開くことができます。
(ウィンドウを縦割りにしてGit Graphと見た目を比較しています)
Git Graph と Git History は、大部分が似た機能を持つプラグインですが、普段の操作にはGit Graph、コードの解析には、Git Historyに軍配が上がります。
どちらも使ったらいいと思います。
コミット間のDiffを確認
あるコミットとコミットの間に、どんな変更があったのか知りたい。
ということがあります。
Git Historyを使って、以下の手順で変更されたファイルとDiffを確認することが出来ます。
1つ目のコミット(過去)の「More」ボタンを押して、コマンドパレットを開きます
コマンドパレットから、「Select this commit」を選択します。
画面表示は特に変わりませんが、これで1つめのコミットが選択状態になっていますので、このまま2つ目のコミットの「More」ボタンを押して、もう一度コマンドパレットを開きます。
今度は、「Compare with」を選択します。
すると、ファイルエクスプローラーのペインにCOMPARE COMMITSというタブが出現し、Diffのあったファイルのリストが表示され、Diffを確認することが出来ます。
ファイルの変更履歴を追跡
あるファイルに焦点を当てて、変更履歴を確認することも出来ます。
ファイルエクスプローラーからファイルを右クリックし、「Git: View File History」をクリックします。
選択したファイル専用のヒストリータブが表示されます
コミットIDで仲間とコミュニケーション
コミットには、16進数のユニークなハッシュ値がID(例: 9a0d349c)として振られています。
これで、コミットを追跡できるので、チーム内でのコミュニケーションでは、これを使って会話をしましょう。
コミットの時間で示したりすると、間違いの元なので、コミットIDを使うようにしましょう。
コミットIDは本当は「9a0d349c8ac3ca8043060b5092a35cab1ebed3c5」と40桁ありますが、大体のツールで先頭8桁に省略されて表示されています。
ハッシュ値は理論的に被らない、天文学的にランダムな数字です。ユーザービリティ的には先頭8桁でもその機能を十分に発揮します。
万(極?)が一はありますがw