Webサイトを複数人で制作・更新していると、「誰がどこを直したか分からない」「昔の状態に戻したいのに戻せない」といった問題に直面しがちです。そんな時に役立つのが、ファイルの変更履歴を管理する「Git(ギット)」というシステムです。
ただ、Gitは黒い画面(コマンドライン)での操作が基本で、初心者には少し難しく感じるかもしれません。そこで登場するのが「SourceTree(ソースツリー)」です。
SourceTreeは、Gitの操作を視覚的に、マウス操作で簡単に行えるようにする無料ツールです。誰が・いつ・どのファイル変更したかが一目で分かり、Web制作チームの強い味方となります。
この記事では、Web制作の現場でよく使われるGitホスティングサービス「Backlog(バックログ)」と連携することを想定し、SourceTreeのインストールから基本的な使い方(ワークフロー)までを、初心者の方にも分かりやすく解説します。
ステップ1:SourceTreeをインストールする
まずはSourceTreeをあなたのPCにインストールしましょう。
公式サイトから、お使いのOS(WindowsまたはMac)に合ったインストーラーをダウンロードして、画面の指示に従ってインストールを進めてください。
ステップ2:初期設定(SSHキーの登録)
次に、あなたのPCとサーバー(BacklogやGitHubなど)が安全に通信するための「合鍵」のようなもの(SSHキー)を作成し、登録します。
SSHキーの作成
Macの場合は「ターミナル」、Windowsの場合は「コマンドプロンプト」や「Git Bash」を開き、以下のコマンドを実行します。
$ ssh-keygen
いくつか質問されますが、特にこだわりがなければEnterキーを押し続けて問題ありません。これで「公開鍵(id_rsa.pub)」と「秘密鍵(id_rsa)」のペアが作成されます。
公開鍵の確認と登録
作成した「公開鍵」の中身を確認します。以下のコマンドを実行すると、長い文字列が表示されます。
$ cat ~/.ssh/id_rsa.pub
表示された文字列(ssh-rsa AAAA...といった内容)をすべてコピーします。
次に、Backlog(またはGitHubなど)にログインし、個人の設定ページにある「SSH公開鍵の登録」メニューに進み、コピーした公開鍵を貼り付けて登録します。
ステップ3:リポジトリをクローン(ダウンロード)する
リポジトリとは、プロジェクトのファイル一式と変更履歴を保存しておく「保管場所」のことです。サーバー上にあるこのリポジトリを、自分のPCに丸ごと複製する作業を「クローン」と呼びます。
- 作業フォルダの準備:
まず、自分のPC内に、プロジェクトファイルを保存するためのフォルダを作成します。(例:/Users/あなたの名前/projects/) - リポジトリのURLをコピー:
Backlogのプロジェクトページにアクセスし、「Git」タブから対象のリポジトリを選択します。接続方法として「SSH」を選び、表示されたURL(git@...のような形式)をコピーします。 - SourceTreeでクローン:
SourceTreeを起動し、「新規」→「URLからクローン」を選択します。 - 情報の設定:
- ソースURL: 先ほどコピーしたSSHのURLを貼り付けます。
- 保存先のパス: 手順1で作成した作業フォルダを指定します。
- 名前: SourceTree上で表示される、自分が分かりやすい名前をつけます(例: プロジェクト名)。
- 実行:
「クローン」ボタンをクリックします。プロジェクトの規模によっては数分かかることもありますが、完了すると指定したフォルダにファイルがダウンロードされます。
ステップ4:作業ブランチを作成する
Gitでは、「ブランチ(枝)」という機能を使って、元のファイル(本流)に影響を与えずに作業を分岐させることができます。これは、複数人が同時に異なる作業を進めるために非常に重要です。
「Git Flow」は、こうしたブランチを使ったチーム開発をスムーズに進めるための代表的な運用ルール(ワークフロー)の一つです。
SourceTreeの上部にある「Git Flow」ボタンをクリックし、「新規Featureを開始」を選択します。Feature(フィーチャー)とは、新しい機能の追加や修正作業のことです。
「Feature名」には、Backlogの課題番号やタスク内容が分かる名前(例: task-123-header-fix)を入力して「OK」をクリックします。これで、あなた専用の作業スペース(ブランチ)が作成されました。
ステップ5:作業とコミット(変更の保存)
作成した作業フォルダ内で、Webサイトの修正やコーディング作業を行います。
作業が一区切りついたら、SourceTreeに戻ります。変更したファイルが「作業ツリーのファイル」一覧に表示されます。
- ステージング:
保存したい変更内容(ファイル)を選択し、「選択をステージング」または「全てのファイルをステージング」をクリックします。これは、変更内容を保存(コミット)するための「準備エリア」に送るイメージです。 - コミット:
画面下部のコミットメッセージ欄に、「何を変更したか」を分かりやすく入力します。(例:課題123 ヘッダーのロゴを修正) - 実行:
「コミット」ボタンをクリックします。これで、あなたのPC(ローカル環境)に変更履歴が「セーブ」されました。
ステップ6:プッシュ(変更のアップロード)
コミット(セーブ)は、まだあなたのPC内(ローカル)にしか保存されていません。
この変更をサーバー(リモートリポジトリ)に反映させ、他のチームメンバーと共有する作業が「プッシュ(Push)」です。
SourceTreeの上部にある「プッシュ」ボタンをクリックし、プッシュ先のブランチ(先ほど作成したFeatureブランチ)にチェックが入っていることを確認して「OK」をクリックします。
ステップ7:プルリクエスト(レビュー依頼とマージ)
作業が完了し、サーバーにもプッシュしたら、その変更をプロジェクトの「本流(例: develop ブランチ)」に取り込んでもらう必要があります。
そのための「レビュー依頼と合流申請」が「プルリクエスト」(またはマージリクエスト)です。
テスト環境への反映(developブランチへのマージ)
- Backlog(またはGitHub)のプロジェクトページに行き、「Git」→「プルリクエスト」→「プルリクエストを追加」をクリックします。
- 合流元(右側)にあなたの「作業ブランチ(Featureブランチ)」を、合流先(左側)に「
develop(開発用の本流ブランチ)」を選択します。 - タイトルやコメントを記入し、プルリクエストを作成します。
- チームの他のメンバーがあなたの変更内容をレビュー(確認)し、問題がなければ「マージ(合流)」を実行します。
マージが完了すると、develop ブランチが更新されます。多くの現場では、この develop ブランチの内容が自動的または手動で「テスト環境」に反映(デプロイ)されるように設定されています。
テスト環境で最終確認を行い、問題ないことを関係者に報告しましょう。
本番環境への反映(masterブランチへのマージ)
テスト環境で問題がないことが確認できたら、いよいよ本番環境への反映です。
基本的な流れはテスト環境への反映と同じですが、今度は「develop ブランチ」から「master(本番用の大本流ブランチ)」へのプルリクエストを作成します。
- 合流元(右側)に「
develop」を、合流先(左側)に「master」を選択して、プルリクエストを作成します。 - 責任者がレビューし、問題がなければマージを実行します。
masterブランチへのマージをトリガーに、本番環境へファイルが反映(デプロイ)されます。
まとめ:SourceTreeでGit管理をスムーズに
今回は、SourceTreeを使ったGitの基本的なワークフローをご紹介しました。
- クローン:サーバーからデータを複製
- ブランチ作成:自分の作業スペースを確保
- コミット:作業内容をローカルにセーブ
- プッシュ:セーブ内容をサーバーにアップロード
- プルリクエスト:本流への合流を申請
コマンド操作(黒い画面)に抵抗がある初心者の方でも、SourceTreeを使えば「今、履歴がどうなっているか」を視覚的に理解しながら作業を進められます。ぜひ、日々のWebサイト運営・管理に取り入れてみてください。
よくある質問(FAQ)
Q1: GitとSourceTreeの違いは何ですか?
A1: Gitは、ファイルの変更履歴を管理する「システム(仕組み)」そのものです。通常はコマンド(命令文)を使って操作します。
SourceTreeは、そのGitをマウス操作で直感的に扱えるようにする「ツール(ソフトウェア)」です。SourceTreeを動かすためには、裏側でGitが動いている必要があります。
Q2: コミットメッセージは、何を書けばいいですか?
A2: 「誰が読んでも、その変更内容が理解できること」が重要です。Backlogなどの課題管理ツールを使っている場合は、「課題番号」と「具体的な作業内容」を簡潔に書くのが一般的です。(例: #123 メインビジュアルの画像を差し替え)
良いコミットメッセージは、後から履歴を振り返る際や、他のメンバーが変更内容を把握する際に非常に役立ちます。
Q3: プル(Pull)やマージ(Merge)で「コンフリクト(競合)」が起きたらどうすればいいですか?
A3: コンフリクトとは、他の人が変更した箇所と、あなたが変更した箇所が「重複(衝突)」してしまい、Gitがどちらを優先すべきか自動で判断できない状態を指します。
SourceTreeはコンフリクトが起きた箇所を教えてくれますが、どちらの変更を採用するか(あるいは両方採用するか)は、人間が判断して手動で修正する必要があります。最初は難しく感じるかもしれませんが、慌てずに、どのファイルのどの部分が競合しているかを確認し、時には変更を加えた他のメンバーと相談しながら解決しましょう。