はじめに
これからプログラミングを学んでいくにあたって、Gitの知識は必要だと思い、色々調べました。他の方やサイトで上手くまとまっているものも多くありますが、自分で書いた方が知識として定着しそうなので投稿します。Gitは通常、CLI(コマンドライン)を使って操作をしますが、SourceTreeを使うことでGUIとしてGitを管理できるようになります。まずは、学習の手始めとしてSourceTreeで管理してみようと思います。
注意!
この記事は、初学者である著者が知識を定着させることを目的として執筆しています。その点をご留意いただけると幸いです。
そもそもGitとは?
Gitは、プログラムのソースコードやファイルなどを、簡単に変更履歴を記録・追跡を行うための、バージョン管理システムのことを指します。プログラムを書かれている方ならば分かると思いますが、日々ファイルの中身はその都度、更新または上書き保存がなされます。その際のバージョン、ファイルの状態をその都度保存するのに便利なツールです。
Gitがないとどうなる?
アプリケーションを使うときに、Ver1.0.0.0のように書かれているのを見たことがあると思いますが、これによってファイルの中身の状態を管理しています。Gitの知識がないと、このファイルの状態を例えば、「2024_1_1_App.cs」、「2024_1_3_App.cs」のように、日付を変えて複製させたりする必要があります。これが一つのファイルのみならばいいのですが、複数のアプリを管理したり、その日のうちに何度も重要な修正を重ねる場合は、さらにファイル数が膨大になります。
複数人でファイルを共有する際のデメリット
このような従来の管理手法では、複数で同じファイルを修正する際に大きな障壁が発生します。それは、1つのファイルを複数人で修正する場合、最後に1つのファイルにまとめ直すとき際に、膨大な労力が発生します。
具体的には、ファイルごとの差分を1つ1つコピーして統合する必要がある点です。コピーするのも大変になるし、人的な管理ではコピーの忘れや、プログラムの場合は正常に動作しなくなることもしばしばあります。
Gitの出番
Gitではこれらのバージョン管理を1人でも、複数人でも容易に行うことができる便利なツールです。
今回は、簡単にGitを管理できるSourceTreeを使用して具体的な使用例を見ていきます。今回は、1人でまずはバージョン管理を行います。
本記事では「SourceTree」を使用します。
以下の公式サイトより、予めダウンロードをお願いします。
SourceTreeでGitを体験してみよう
STEP1.デスクトップ上にフォルダを作成
上の写真の様に、デスクトップ上にフォルダを作成します。名前は何でも構いません。
STEP2.フォルダの中にテキストファイルを作成
デスクトップに作成したフォルダの中に、新しくテキストファイルを作成します。こちらも名前は自由に決めてください。テキストファイルを作成したら、ファイルの中身を自由に変更を加えてください。
私はテキストファイルにこのように書いてみました。
STEP3.SourceTreeを開いて、コミットの準備をしよう
SourceTreeを開いたら、メイン画面の左上に+マークがあると思います。ここで、これからデスクトップに作成したファイルをgitでファイル管理するための初期準備をはじめます。
ここでは、「ローカルレポジトリ」という単語が書かれています。ローカルレポジトリとは、簡単にいうと、「あなたのパソコンに作成される、データの保管庫」です。このフォルダの中で、gitファイルというものが作成され、あなたが作成したテキストファイルやその他のファイルを、バージョンごとに保管してくれる場所を作成します。まだ、ここでは先ほど作成したフォルダをローカルレポジトリとして指定していないので、みなさんの画面ではなにも出ていないと思います。
STEP4.ローカルレポジトリを作成する
次に、ローカルレポジトリを実際に作成してみましょう。画面中央のCreateをクリックすると、「Create Repository」という画面に遷移すると思います。実際に、ここでローカルレポジトリを作成します。保存先のパスのところで、先ほどデスクトップに作成したフォルダを指定します。
フォルダを選択し、名前を決めたら作成ボタンを押してみましょう。
### STEP5.ファイルが作られたか確認しよう。
ローカルレポジトリを作成すると、先ほどのフォルダの中にgitファイルが作成されています。
もし、このようにファイルが表示されていない場合は、「隠しファイル表示方法」とインターネットで検索をして、エクスプローラーの設定を変更してください。
gitファイルを作成したことによって、バージョン管理を行えるようになりました。gitファイルでバージョン管理をするには、このファイルを直接変更するのではなく、コマンドやSourceTreeを使って編集していきます。
STEP6.コミットしてみよう
まず、SourceTreeの画面がこのようになっているかを確認します。もし、左側の部分が写真の様に上下に分かれていない場合は、下記の部分から設定を変更します。そもそも別の画面になっていたら、左上のコミットをクリックしてください。
この右側のトグルボタンをクリックすることで、画面を上下に分割できます。
この時に、先ほど作成したテキストファイルが「作業中ツリーのファイル」というところに選択されているかと思います。このテキストファイルをクリックし、右上の「選択をインデックスに追加」という部分を押してください。そうすることで、ファイルが「Indexにステージしたファイル」に追加されると思います。
ステージしたファイルとは?
ステージしたファイルとは、コミットをしたいファイルを選択した状態だと思っていただいて結構です。私は、コミットの舞台上にファイルを上げてあげると覚えています。
コミットをするためには、「コミットコメント」を残す必要があります。コミットコメントとは、なぜこのコミットを行ったのかを記述する場所です。今回は初回のコミット、バージョンを登録するので、最初のうちはわかりますが、今後はファイルを変更、保存しておきたいその都度コミットしていきます。その際に、ファイルのどの部分に修正をしたのか、なぜ今回コミットをしたのか、しっかりとコメントを残さないとわからなくなっていきます。一人の場合ならばいいかもしれませんが、これが複数人での管理となった場合、コメントをしっかり残さないといけないのは明白だと思います。
今回のコミットコメントは、まずはテキストファイルを作成しただけなので、「テキストファイルを作成」とだけ記しておきます。コミットコメントを入力し終わったら、画面右下のコミットボタンを押しましょう。コミットが開始されます!
画面の様に、ファイルがmasterと表示されていたら、コミット成功です!これ以降、ファイルを変更した際に、保存しておきたい状態ごとにコミットをすることで、バージョン管理ができるようになります。
STEP7.ファイルの変更をコミットしてみよう。
次に、先ほど作成したテキストファイルに文章を追加してみましょう。
このように1行追加しました。この変更をもう一度先ほどの手順を踏んでコミットしてみましょう。
と、その前に変更を加えると自動的にSourceTreeが検知してくれます。
「コミットされていない変更があります」
なんとも親切に教えてくれるのですね。これでコミットの忘れが減りそうです。
今度のコミットコメントは、「2行目を追加」という旨がわかりやすいものがいいと思います。
コミットが終了すると以下の画像のように変更されると思います。
2回目のコミットが反映されましたね!これで先ほどの初期状態と最新の状態の2つがバージョン管理できるようになりました。
STEP8.初期のバージョンに戻してみる(チェックアウト)
それでは、Gitの本領発揮どころ、最初のコミットの状態にファイルを戻してみましょう。過去に作ったコミットに戻ることを「チェックアウト」と呼びます。チェックアウトをすることで、過去の状態まで簡単にファイルを戻すことができます。
チェックアウトの方法はいたって簡単です。戻りたい地点のコミットの上で右クリック→チェックアウトを選択すればいいだけです。
チェックアウトが正常に終了したら、テキストファイルを確認してみましょう。最初のコミットの状態にファイルが戻っていると思います。このように、Gitは簡単にバージョン管理を行えるようになります。プログラムが正常に作動していた地点まで戻したい、消してしまった文章を元通りにしたいという動作は、gitできちんとバージョン管理しておけばできるようになります。
さいごに
長々と説明してしまいましたが、いかがだったでしょうか。私自身も勉強中ですので、この後のブランチやマージなどは追って説明させていただければと思います。ありがとうございました。