Xcodeを使用したGitバージョン管理の操作方法
![](https://kaiyou9.com/wp-content/uploads/2024/05/DALL·E-2024-05-18-22.09.08-Create-an-image-in-a-pastel-colored-picture-book-illustration-style.-The-background-should-be-light-and-cheerful.-Focus-on-the-Xcode-logo-with-soft-p.webp)
MacOS Sonoma 14.4.1
Xcode 15.3
XcodeにはGitなどを用いてバージョン管理ができる仕組みが提供されていますが、使い方が分かりにくい点がいくつかあります。
ですのでXcodeを使ったバージョン管理について、Gitコマンドと対応させつつまとめていきたいと思います。
GitHubとのやりとりも出てくるので、XcodeにGitHubアカウントの登録が済んでいない方は、こちらの記事を参考にして先に登録してしまいましょう。
![XcodeにGitHubアカウントを登録する方法](https://kaiyou9.com/wp-content/uploads/2024/06/DALL·E-2024-06-05-10.52.49-Create-a-blog-featured-image-in-a-soft-pastel-illustration-style-reminiscent-of-a-picture-book.-The-image-should-include-the-following-elements_-1.-T-320x180.webp)
このようなコードブロック内は対応するGitコマンドを記載しています。
リモートリポジトリ名はoriginとしています。
バージョン管理下に置く方法
まずはXcodeでプロジェクトをバージョン管理下に置く方法を説明します。
ここでは自分のプロジェクトを新規に作成する場合と、リモートからクローンしてくる2パターンを挙げます。
自分で新規にプロジェクトを作成する
プロジェクトを作成する時から管理する場合
Xcodeを起動したらCreate New Project…から新規プロジェクトを作成します。
その時、プロジェクト作成ディレクトリ選択画面でCreate Git repository on my Macのチェックボックスにチェックを入れることで管理下に置くことができます。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-17.17.38-1-1024x653.png)
プロジェクト途中から管理する場合
管理下に置きたいプロジェクトを開いた状態で、メニューバーのアプリメニューIntegrate > New Git repository…を選択し、Create。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-17.27.21.jpg)
git init
ナビゲーターエリアのソースコントロールナビからRepositoriesを選択、一番下のRemotesを右クリックしNew”プロジェクト名”Remote…を選択します。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-13.32.05.jpg)
出てきた画面で必要に応じて内容を変更しCreateすることで、新しくこのプロジェクトのリモートリポジトリが作成されます。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-13.52.03.png)
<!-- Githubでリモートリポジトリを作成してから -->
git remote add origin REMOTE-URL
Remotesのプルダウンに、先ほど設定したRemote Name(origin)が追加されていればうまく設定できています。
git remote -v
リモートリポジトリからクローンする
GitHubでフォークしたり、過去のSwiftプロジェクトリポジトリ等を用意しておきます。
新しく作成された何もファイルがないリポジトリはクローンできますが開くことは出来ないのでご注意ください。
Xcodeを起動したらClone Git Repository…を選択します。
GitHub上のリポジトリが一覧表示されるので、クローンしたいリポジトリを指定しCloneをクリックし、保存先を選択します。
git clone REMOTE-URL
XcodeでのGitコマンド操作
ここでは基本的な操作を順に見ていきます。
ブランチの作成
ブランチの作成はソースコントロールナビからBranchs > mainを右クリックしたメニューからNew Branch from “ブランチ名”…を選択し、ブランチ名を入力して作成します。
ブランチを作成するだけでなく、HEADは新規作成されたブランチに移動しています。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-18.10.57-1024x708.png)
git checkout -b BRANCH名
ブランチの移動
ブランチを移動したい時はメインエリア上部のプロジェクト名をクリックし、移動したいブランチ名を選択するとスイッチするか確認されるのでスイッチします。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-21.09.15-1024x636.jpg)
![](https://kaiyou9.com/wp-content/uploads/2024/02/DALL·E-2024-02-10-17.46.05-A-profile-icon-of-a-long-tailed-tit-シマエナガ-designed-in-a-soft-gentle-and-fluffy-art-style-reminiscent-of-the-Sumikko-Gurashi-characters.-The-bird-1.webp)
XcodeではHEADの移動はcheckoutではなくSwitchと呼ばれています。ブランチではなく特定のコミットに移動したいときは、コミット履歴を右クリックしSwich to “ハッシュ値”…を選択すれば移動できます。
git checkout ブランチ名またはハッシュ値
コミットする
内容を変更していくと、プロジェクトナビのファイルの右側に色々なアイコンが表示されますが、これは変更(Modified)や追加(Add)した上で、コミットしていないことを表しています。ですのでコミットする、もしくは変更前の状態に戻すことで表示は消えます。
この状態でソースコントロールナビのChangesを見るとUncommitted Changesという部分に変更されたファイルが一覧で表示されており、メインエリアではそれぞれのファイルの変更の差分も確認できます。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-18.48.30-1024x708.jpg)
ワークツリーの内容をステージングエリアに追加するには、すべて追加する場合は画面右のStage Allを選択します。
個別に追加したい場合はMのアイコンをクリックして表示されるStge Changesを一つ一つ選択します。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-20.15.15-2.png)
git add ファイル名
取り消す場合は、同じボタンがStageからUnstageに変わっているので、それを選択すればステージングエリアから取り除くことが出来ます。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-20.28.37-1.png)
git restore --staged ファイル名
続いてコミットを行う方法ですが、コミットメッセージを記入する部分にメッセージを記入してからCommitボタンでコミットすることができます。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-12-20.33.16-2-1024x636.png)
git commit -m "コミットメッセージ"
マージする
まず取り込み元のブランチにスイッチしてから、取り込み先のブランチ名を右クリックしMarge “取り込み先ブランチ” into “取り込み元ブランチ”を選択します。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-13-20.33.47-1024x702.jpg)
git merge 取り込み先ブランチ名
コンフリクトが発生した場合は以下の画面になるので解消してからMergeを選択します。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-13-20.42.28-1024x638.jpg)
ブランチを削除する
マージして不要になったブランチを削除するにはソースコントロールナビのブランチ名を右クリックしてDelete…を選択するだけです。
ちなみに、このDeleteはマージされていないコミットがあるブランチに対しても行えるので注意してください。
git branch -D ブランチ名
プッシュする
ローカルリポジトリの内容をリモートリポジトリに反映させるにはアプリメニューIntegrate > Push…を選択しプッシュするブランチを指定してプッシュします。
Xcode上で操作してたらあまり意味ないですが、一応上流ブランチに設定してくれるようです。
![](https://kaiyou9.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-13-21.37.27-1024x632.jpg)
git push -u origin ローカルブランチ名:リモートブランチ名
プルする
リモートリポジトリの内容をローカルリポジトリに反映させるにはプルを行いますが、プッシュの操作と全く一緒です。
アプリメニューIntegrate > Pull…を選択しプルするブランチを指定します。
git pull origin ブランチ名
おわりに
ここまでよく使用する基本的なGit操作を紹介しましたが、他にもまだまだできることはあります。
コマンドに慣れていると逆に使いづらく感じるところもあるかもしれませんが、コマンドよりも簡単に操作が行えるものも多いので、Xcode上でのGit操作も使えるようになると、より作業がはかどるかと思います。