i-Vinci TechBlog
株式会社i-Vinciの技術ブログ

Gitを使ってみて便利に思ったところ

最近、初の後輩が出来て戸惑っているThree Islandsです。
本記事では、システム開発において欠かせないツールの一つであるGitがどういった場面でどの様に活躍するかを書かせていただきます。
入社以前にシステム開発について個人学習していた際、Gitについて「よく目にするが使い方やメリットがいまいちわからない」というイメージがありました。私と同じように思われている方の参考になれば幸いです。

対象読者

  • Gitをどう使えばいいか、どういった場面で活躍するかがピンとこない方

Gitとは

ファイルに加えた変更を記録するツールです。各時点でのファイルの状態を保持し、後から確認することが出来ます。また、ファイルの状態を特定の時点まで巻き戻すといった事も出来ます。

参考記事「GITとは何か?GITの概念を解説」

Gitを使うと便利な場面

中規模以上の開発をする際に活躍します。
開発期間が長く、ソースコード量が多くなると変更内容の把握が困難になるのでGitでのバージョン管理が重要になります。
具体的な使い方を交えて説明します。
(分かり易くするためにVisual Studio CodeでGUIを用います)

環境

  • Windows
  • Visual Studio Code
    • 拡張機能
    • Git History

フォルダ構成

  • git_tutorial
    • .git
    • blog.txt

↑の「blog.txt」に変更を加えていき、gitの挙動を見ていきます。

変更履歴の保存(commit)

「blog.txt」に変更を加えた後、ステージング → コミットと操作することでコミット時点での「blog.txt」の情報が保存されます。保存した情報は後から確認することが出来ます。
git_commit
↑ 赤線:「blog.txt」に加えた変更 黄色線:コミットメッセージ(コミットの説明文)

コードの差分確認(diff)

Gitリポジトリには、インデックスという保存エリアがあります。
インデックスにはステージングした変更のみが一時的に保存されています。
area_explain
それぞれの保存エリア間でファイルの状況を比較することで、差分を確認できます。

  • ワーキングスペースで加えた変更を確認する
  • インデックスと、以前のコミットとの差分を比較したい

といった目的に適しています。
git_working
↑ 4行目まで追加した時点でステージングした後、5行目を追加(インデックスに保存されているのは4行目まで)
working_index
↑ ワーキングスペースとインデックスでコードを比較(ワーキングスペースのみに存在する5行目が強調表示される)
index_lastCommit
↑ インデックスと以前のコミットでコードを比較(一度目のコミットの後に追加した行が強調表示される、インデックスにない5行目は表示されない)

変更履歴の確認 (log, blame)

以前のコミットを取得することで、コードの変更履歴を確認することが出来ます。

  • 以前のコミットを一覧取得し、コミットメッセージから変更内容を把握する
  • 各コミット時点のコードを確認する
  • コミットAを、コミットB(Aの一個前のコミット)と比較することで変更内容を確認する

といった目的に適しています。

history
↑ コミットが一覧表示される
git_log_1st
↑ 一度目のコミット時点のコード
git_log_2nd
↑ 二度目のコミット時点のコード
git_blame
↑ コミットを比較し、2度目のコミットで加えた変更を取得する。

豆知識:GitHubとは

GithubはMicrosoftが運営する、Gitのホスティングサービスです。
ネットワークを介し、他者とGitリポジトリを共有することが出来ます。
ソースコードの共有やコードレビューなど、システム開発の多くの場面で活躍するため、Gitと同様に多くの開発現場で使用されます。

最後に

以上のように、Gitはコーディングの多くの場面で役立ちます。
中規模以上の開発になるとメリットを感じやすいですが、個人開発などでも活用できる場面は多いと思います。皆さんも是非採用してみてください。