開発に欠かせないソース管理ツール。今回はその中でもSourceTreeというツールの使い方をご紹介したいと思います。
まず、ソース管理とは、複雑なプログラムの開発状況をスムーズに管理し、また円滑にチーム開発などを行うために必須な作業となります。
前提
・XCodeのプロジェクトが存在している
・Githubアカウントを持っている
ソース管理ではいろいろなコマンドが用意されているのですが今回は基本的なコマンド
・Commit
・Push
について説明しつつ、SourceTreeの使い方を説明していきます。
まず、XCodeで今回ソース管理する対象の「SampleTree」というプロジェクトを作成します。このときファイルをどこへ保存するか聞かれるタイミングで、Source Controlに関するティックが、図のように下部に現れます。これを図の通りのままにして、プロジェクトを作成してください。
ここで、「Create Git Repository」という言葉が出てきました。
実は、このティックをつけることでローカルリポジトリファイル(.git)を作ることができます。
リポリジトリとは?
.gitは隠しファイルなのでFinderで見ても存在するかわかりません。
ターミナルで隠しファイルを表示するオプションをつけてlsコマンドを実行することで確認できます。
リポジトリファイルとはソース管理の基となるファイルで、「貯蔵庫」という意味になります。
ここにプロジェクト全体の変更点を保存しておき、ファイルをある時点の状態に戻したり、履歴を確認したりすることができるようになります。
リポジトリファイルにも2種類あり、
・ローカルリポジトリ
・リモートリポジトリ
というリポジトリファイルが存在します。
ローカルリポジトリ
作業中のPC内に存在するリポジトリファイルです。CommitというGitコマンドを使って、変更点の履歴を保存していきます。今回はXCodeでローカルリポジトリを作成した状態からSourceTreeで操作を行います。
リモートリポジトリ
ソースを管理する為のサーバー上に存在するリポジトリファイルです。PushというGitコマンドを使って、ローカルリポジトリの履歴をサーバー上にUploadし保存することが可能です。今回はリモートリポジトリの保存場所として「Github」というホスティングサービスを利用していきます。
GitコマンドとSourceTree
ソース管理をおこうなう専用のコマンドです。使用するにはPCにGitソフトをインストールする必要がありますが、XCodeがインストールされているMacでは既にGitもインストール済みなのでXCodeがインストールされているMacには改めてインストールする必要はありません。Gitコマンドは通常、ターミナルからコマンドライン(CUI)ベースで実行するものなのですが、Gitコマンドを見やすい形で操作するためのツールがSourceTreeになります。
SourceTreeはこちらのサイトからダウンロードが可能です。
SourceTreeにプロジェクトを追加する
早速実際に使ってみましょう。
起動し、「新規リポジトリ」ボタンを押し、「既存のローカルリポジトリ」をクリックします。
次に、用意しておいたSampleTreeプロジェクトのフォルダを指定し、開きます。
そうするとSourceTreeの初期表示リストにSampleTreeプロジェクトが追加されたことを確認できます。
Commit
ここから、プロジェクトの変更をSourceTreeを使用してCommitしていきます。
まず、コンソールにHello,World!とだけ表示するプログラムをViewControler.mというファイルに記述し、ファイルを変更しておきます。
そのあと、SourceTreeを開き、SampleTreeプロジェクトをダブルクリックすると下の図のように、変更点を確認できる画面が表示されます。
変更点を保存するために「作業ツリーのファイル」にティックをつけると変更点のあるファイルが全て「ステージされたファイル」の方へ移動します。(ファイル個別に移動することも可能です)
コミットするためにはメッセージを記載する必要があります。記載しようとすると、下記のような画面が表示されます。
ここでの「コミットに紐づくユーザー情報」というのはGithubアカウント情報になります。事前にGithubでアカウントを作成しておきその情報を入力しておきましょう。
アカウント情報を入力するとメッセージが記載できるようになるので記載してコミットボタンを押します。これでローカルリポジトリに変更点を保存しておくことができました。
Push
ローカルリポジトリにコミットがたまったら、次はそれをリモートリポジトリにPushしましょう。チーム開発で複数人で共有する場合、またバックアップの観点からも定期的なPushが必要です。
Pushを行うにはまずローカルリポジトリとリモートリポジトリの紐付けを行います。
最初にGithubにログインしてからのリモートリポジトリを作っておきましょう。ここでは前提として「https://github.com/ei17ringo/sampletree」というリモートリポジトリを用意しています。