【Xcode】Gitの連携方法と使い方!バージョン管理方法
この記事からわかること
- XcodeとGitの連携方法
- コミットやプッシュ、プルなどの使い方
- iOSプロジェクトのバージョンの管理
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
分散型バージョン管理システム「Git」をiOSやmacOSアプリ開発用の統合開発環境である「Xcode」から操作する方法をまとめていきます。また各操作に対応するコマンドも載せておきます。
XcodeからGitを操作する
ソフトウェアなどのバージョン管理に長けたGitはコマンドライン(ターミナル)を使用(CUI)して操作するのが一般的ですが、XcodeではGUI操作でGitを操作できるようになっています。
コミットするファイルの中身を確認できたり、コンフリクトした際も見やすい操作で解消することが可能になっています。またGitHubとの連携も可能になっているのでリモートリポジトリの作成からGitHub上へアップロードまでの流れをXcodeから行うことができます。
おすすめ記事:【Swift】GitHubへiOSアプリプロジェクトをアップロードする方法!Xcodeとの連携
連携の流れ
XcodeとGitを連携させる流れを確認してみます。
- Gitのインストールとユーザー設定
- Xcodeからローカルリポジトリの作成
Gitのインストールとユーザー設定
Gitの利用にはPCへのインストールとユーザー登録が必要になります。
インストールにはバージョンを確認する以下のコマンドを実行します。インストール済みであれば現在のバージョンが、未導入であればインストールへと促してくれます。
$ git --version
git version 2.30.1 (Apple Git-130)
インストールが完了したら以下のコマンドで任意の値を渡してユーザー設定を済ませておきます。
$ git config --global user.name "ユーザー名"
$ git config --global user.email "メールアドレス"
詳しくは以下の記事をご覧ください。
おすすめ記事:【Git】インストール方法と使い方!リポジトリの違いと作成方法!
Xcodeからローカルリポジトリの作成
ここからはターミナルを使用せずXcodeを操作していきます。
Xcodeからプロジェクトを作成する際に「Create Git repository on my Mac」に チェックを入れることで該当のプロジェクトに対してGitによる監視が始まり、ローカルリポジトリが作成されます。
対応コマンド
$ git init
途中でローカルリポジトリを作成する
もし最初にチェックを入れ忘れてしまっても後からローカルリポジトリを作成することもできます。Xcodeの上部メニューから「Source Control」>「New Git Repositories...」をクリックします。
「Create」をクリックすればローカルリポジトリを作成することができます。
ファイル横の文字の意味
Gitでの監視をオンにした状態のまま、開発をしているとファイル名の横に「M」や「A」などの文字がつきます。これはファイルに対して「Modification(変更)」と「Add(追加)」、「Replace(置換/移動)」したという意味を表す文字になります。
この文字はコミットされていないファイルに対して付与されていくので、コミットするとリセットされます。
「?」と表示されているファイルはGitに認識されていないファイルです。「.gitignore」ファイルに記述されているファイルなどが該当します。
XcodeからGitの操作
続いてXcodeからGitを操作する方法をまとめていきます。
Xcode内でGit操作を可能にしているのはXcode左のナビゲータエリアの左から2つ目のアイコン(Source Control)です。
クリックしてみると「Branches」や「Remotes」などGit/GitHubに絡んだ用語が出てきているのがわかると思います。
項目
- Branches:ブランチ管理
- Recent Locations:最近使用したリポジトリのリストが表示
- Tags:タグ管理
- Stashed Changes:スタッシュ(※)管理
- Remotes:リモートリポジトリ管理
※スタッシュとは変更内容を一時的に保存するために便利なGitの機能のこと
Xcodeの上部メニュー>Source Controlから操作する
Xcodeの上部メニュー>「Source Control」からでもGit操作が可能になっています。
項目
- Commit...:コミット
- Push...:プッシュ
- Pull...:プル
- Fetch Changes:フェッチ(リモートから最新の変更履歴をダウンロード)
- Refresh File Status...:ファイルステータス更新
- Cherry-Pick...:Cherry-Pick(コミットの変更内容を別のブランチに取り込む)
- Stash Changes...:スタッシュ管理
- Discard All Changes...:全ての変更内容を破棄してファイルを元の状態に戻す
- New Git Repositories...:リポジトリ作成
- Clone...:クローン
ターミナルから操作する
XcodeからGitを操作できるインターフェースが用意されていますが、もちろん従来通りターミナルからGitを操作することも可能です。その際はプロジェクトのパスにカレントディレクトリを合わせることを忘れないようにしてください。
$ cd プロジェクトパス
変更をコミットする
対応コマンド
$ git commit -m “コメント”
変更内容をコミットするにはXcodeの上部メニューから「Source Control」>「Commit」をクリックもしくはCommand + Option + C
を押します。
すると以下のような画面になります。この画面ではコミット対象ファイルがチェックされた状態で左側に表示され、ファイルをクリックすると前回のコミットからの変更点が表示されます。コミットしたくないファイルがある場合はチェックを外すか「.gitignore」ファイルに記述しておきましょう。
おすすめ記事:【Xcode/Git】.gitignoreファイルの設定方法!役割や反映されない解決法とは?
問題がなければ下側にコミットの際のコメント(今回はFirst Commit)を入力し、右下の「Commit File」をクリックすればコミット完了です。
コミットの履歴を確認する
対応コマンド
$ git log
コミットの履歴はナビゲータエリアの2つ目のアイコンから確認できます。その中の「Branches」>「main」を見てみるとコミット履歴が表示されています。
Xcodeでは初回に自動で一度コミットされているので「Initial Commit」が既に履歴として残っています。
私のブランチ名がmain
なのは「Black Lives Matter」(BLM)運動への配慮としてmain
に変えているからです。
直前のコミットを取り消す
コミットを取り消すにはターミナルからreset
コマンドを実行します。
$ git reset --soft HEAD^
例えば上記のコードでは--soft
はコミットのみを取り消して変更されたファイルはそのままにするオプションとコミット指定にHEAD^
を指定し直前のコミットのみ取り消しています。
ブランチの作成
対応コマンド
$ git branch ブランチ名
ナビゲータエリアの2つ目のアイコン>「Branches」からブランチを右クリックして、「New Branch for ブランチ名」を選択します。
ブランチの切り替え
対応コマンド
$ git checkout ブランチ名
$ git switch ブランチ名
ナビゲータエリアの2つ目のアイコン>「Branches」からブランチを右クリックして、「Switch...」を選択します。
current
がついてるブランチが現在のブランチです。
ブランチの削除
対応コマンド
$ git branch -d ブランチ名
ナビゲータエリアの2つ目のアイコン>「Branches」から削除したいブランチを右クリックして、「Delete...」を選択します。
ブランチのマージ
対応コマンド
$ git merge 統合したいブランチ名
ナビゲータエリアの2つ目のアイコン>「Branches」からマージしたいブランチを右クリックして、「Merge "ブランチ名" into "カレントブランチ名"...」を選択します。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。