Others

Xcodeを使用したGitバージョン管理の操作方法

海洋
利用環境

macOS Tahoe 26.6.2
Xcode 27.0

XcodeにはGitなどを用いてバージョン管理ができる仕組みが提供されていますが、使い方が分かりにくい点がいくつかあります。
ですのでXcodeを使ったバージョン管理について、Gitコマンドと対応させつつまとめていきたいと思います。

GitHubとのやりとりも出てくるので、XcodeにGitHubアカウントの登録が済んでいない方は、こちらの記事を参考にして先に登録してしまいましょう。

未連携の方はこちら
XcodeとGitHubを連携する方法|トークン作成から設定まで
XcodeとGitHubを連携する方法|トークン作成から設定まで
このようなコードブロック内は対応するGitコマンドを記載しています。
リモートリポジトリ名はoriginとしています。
Plaintext

バージョン管理下に置く方法

まずはXcodeでプロジェクトをバージョン管理下に置く方法を説明します。
ここでは自分のプロジェクトを新規に作成する場合と、リモートからクローンしてくる2パターンを挙げます。

自分のプロジェクトを新規、または途中から管理

ローカルリポジトリを作成する
プロジェクト開始時から管理する場合

Xcodeを起動したら新規プロジェクトを開始し、cmd + sで保存します。その時、Create Git repository on my Macのチェックボックスにチェックを入れて保存することで管理下に置くことができます。

プロジェクト途中から管理する場合

管理下に置きたいプロジェクトを開いた状態で、メニューバーのアプリメニューIntegrate > New Git Repository…を選択し、Create。

git init
Zsh
リモートリポジトリを作成する

ナビゲーターエリアのソースコントロールナビからRepositoriesを選択、一番下のRemotesを右クリックしNew “プロジェクト名” Remote…を選択します。

出てきた画面で必要に応じて内容を変更しCreateすることで、新しくこのプロジェクトのリモートリポジトリが作成されます。

# GitHubでリモートリポジトリを作成してから
git remote add origin REMOTE-URL
Zsh
正しく設定されたか確認する

Remotesのプルダウンに、先ほど設定したRemote Name(origin)が追加されていればうまく設定できています。

git remote -v
Zsh

リモートリポジトリからクローン

GitHubでクローンしたいリポジトリを用意する

Swiftプロジェクトのリモートリポジトリを用意しておきます。
新しく作成された何もファイルがないリポジトリはクローンできますが開くことはできないのでご注意ください。

Xcodeでクローンする

IntegrateからClone…を選択、もしくはスタートメニューのClone…を選択します。
GitHub上のリポジトリが一覧表示されるので、クローンしたいリポジトリを指定しCloneをクリックし、保存先を選択します。

git clone REMOTE-URL
Zsh

XcodeでのGitコマンド操作

ここから基本的な操作方法を順に見ていきます。

ブランチの作成

ブランチの作成はソースコントロールナビからBranches > mainを右クリックしたメニューからNew Branch from “ブランチ名”…を選択し、ブランチ名を入力して作成します。
ブランチを作成するだけでなく、HEADも新しいブランチに移動します。

git checkout -b BRANCH名
Zsh

ブランチの移動

ブランチを移動したい時はソースコントロールナビからBranches > 移動先ブランチ名を右クリックしたメニューからSwitch to “ブランチ名”…を選択するとスイッチするか確認されるのでスイッチします。

XcodeではHEADの移動はcheckoutではなくSwitchと呼ぶようです。ブランチではなく特定のコミットに移動したいときは、コミット履歴を右クリックしSwitch to “ハッシュ値”…を選択すれば移動できます。

git checkout ブランチ名またはハッシュ値
Zsh

コミットする

内容を変更していくと、プロジェクトナビのファイル名の右側に色々なアイコンが表示されますが、これは変更(Modified)や追加(Add)した上で、コミットしていないことを表しています。ですのでコミットする、もしくは変更前の状態に戻すことで表示は消えます。

この状態でソースコントロールナビのChangesを見るとUncommitted Changesという部分に変更されたファイルが一覧で表示されており、メインエリアではそれぞれのファイルの変更の差分も確認できます。

ワークツリーの内容をステージングエリアに追加するには、すべて追加する場合は画面右のStage Allを選択します。
個別に追加したい場合はそれぞれのファイルの右上、Mのアイコンをクリックして表示されるStage Changesを一つ一つ選択します。

git add ファイル名
Zsh

取り消す場合は、同じボタンがStageからUnstageに変わっているので、それを選択すればステージングエリアから取り除くことができます。

git restore --staged ファイル名
Zsh

続いてコミットを行う方法ですが、コミットメッセージを記入する部分にメッセージを記入してからCommitボタンでコミットすることができます。

git commit -m "コミットメッセージ"
Zsh

マージする

まず、新しいコミットを追加したいブランチ(枝分かれが一つだけであればmainブランチ)にスイッチしてから、取り込みたいブランチ名を右クリックしMerge “取り込みたいブランチ名” into “コミットを追加したいブランチ名”を選択します。

git merge 取り込みたいブランチ名
Zsh

コンフリクトが発生した場合は以下の画面になるので解消してからMergeを選択します。

ブランチを削除する

マージして不要になったブランチを削除するにはソースコントロールナビのブランチ名を右クリックしてDelete…を選択するだけです。
ちなみに、このDeleteはマージされていないコミットがあるブランチに対しても行えるので注意してください。

git branch -D ブランチ名
Zsh

プッシュする

ローカルリポジトリの内容をリモートリポジトリに反映させるにはソースコントロールナビのChangesからCommitを選択し右上のPush…からプッシュするブランチを指定してプッシュします。
Xcode上で操作していたらあまり意味ないですが、一応上流ブランチに設定してくれるようです。

git push -u origin <ローカルブランチ名>:<リモートブランチ名>
Zsh

プルする

リモートリポジトリの内容をローカルリポジトリに反映させるにはプルを行います。
アプリメニューIntegrate > Pull…を選択しプルするブランチを指定すればOKです。

git pull origin ブランチ名
Zsh

おわりに

一通り紹介しましたが、Xcodeでは一つのGitコマンドに対して多くの操作方法が用意されています。ブランチ操作を除けば、基本的にアプリメニューのIntegrateにまとまっているので、わからなければまずここを見るのがいいと思います。

コマンド操作に慣れていると逆に使いづらく感じるところもあるかもしれませんが、コマンドよりも簡単に操作が行えるものも多いので、Xcode上でのGit操作も使えるようになるとより作業がはかどるかと思います。

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

ABOUT ME
海洋
海洋
NWエンジニア
ネットワーク・セキュリティを中心に、業務や検証環境で実際に触れた内容を記録しています。
現職ではネットワークの運用・構築を担当。

保有資格
ネットワーク:ネットワークスペシャリスト / CCNA
セキュリティ:情報セキュリティマネジメント / ISC2 CC
クラウド  :AZ-104 / AZ-305
その他   :応用情報技術者 / LinuC レベル1

記事URLをコピーしました