【Xcode/Git】.gitignoreファイルの設定方法!役割や反映されない解決法とは?

この記事からわかること

  • Xcodeに.gitignoreファイルを設定する方法
  • .gitignoreファイルとは?
  • 使い方役割
  • 記述方法
  • ファイルパス否定コメントワイルドカードエスケープの指定方法
  • おすすめ設定例
  • 反映されない場合の解決

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

参考文献:gitignore Documentation - Git
参考文献:GitHub:gitignore/Swift.gitignore

.gitignoreファイルとは?

.gitignore」ファイルとは「ignore(無視する)」の言葉通り、記述されているパスのファイルをGitで管理しないようにするための設定隠しファイルです。ファイルの置き場所に決まりはありませんが複数の.gitignoreファイルを設置していた場合にルートファイルに近いほど優先順位は低く、深い階層にあるファイルほど高くなります。

iOSアプリのプロジェクトを作成するとデフォルトでは存在しないので自身で作成する必要があります。作成方法は後述しますが、隠しファイルなので表示させるには「Shift + command + .」を同時押しすることで表示/非表示を切り替えることができます。

【Xcode/Git】.gitignoreファイルの設定方法!役割や導入とは?

Swift/Xcodeでの.gitignoreファイル作成方法

Swiftプロジェクトの設定をしたら「Create Git repository on my Mac」にチェックを入れて作成します。これでローカルリポジトリが作成されXcode内がGitの管理下になります。

Xcode/Swiftをgitを使用して開発する

.gitignoreファイルを作成するにはターミナルから操作していきます。プロジェクトのパスへカレントディレクトリを合わせたら、touchコマンドを使って新規でファイルを作成します。

$ cd プロジェクトのパス
$ touch .gitignore

これで以下画像のようにプロジェクト内に.gitignoreファイルが作成されているはずです。

【Xcode/Git】.gitignoreファイルの設定方法!役割や導入とは?

記述方法

.gitignoreファイルには無視させたいファイルのファイル名もしくはパスを順番に記述していきます。

コメント行

#行頭に記述するとその行はコメント扱いになり反映されなくなります

# これはコメント行

ファイル指定

ファイル名は拡張子を含めて指定します。

setting.swift

ディレクトリ指定

ディレクトリ名を指定する際は/の位置で意味合いが変化します。

# 全てのModelsディレクトリを無視する
Models/

# カレントディレクトリからの相対パスにあるModelsディレクトリを無視する
/Models/

否定

上の階層で無視するように設定していたパスを再度管理下にするためには行頭に!を付与します。

!setting.swift

ワイルドカード

ファイル名やパスの指定には*を使用することで「/」以外のすべてに一致し、?を使用することで「/」以外の任意の1 文字に一致します。

*.txt
log?.txt

エスケープ文字

ファイル内で特殊な意味を持つ文字(/や*、#など)を使用したい場合はその文字の前に\を付与することで特殊な意味を持たなくなります。

\#test.txt

Xcodeに指定するおすすめ設定

参考文献:GitHub:gitignore/Swift.gitignore

基本的には上記リンクのものを参考にして作成しています。DS_StoreMacのフォルダとファイルに関するメタ情報を保存する隠しファイルなのでこれも除外しておきます。以下は私が使用している「.gitignore」です。

## Stores meta information about folders and files
.DS_Store

## User settings
## ファイル内のカーソル位置などの情報ファイルが格納されているディレクトリ
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
## ソースコード管理(SCM)に関する設定ファイル
*.xcscmblueprint
## Xcode8以前のファイル Xcode9以降はxcscmblueprintに含まれている
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
## ビルド時に生成されるバイナリやリソース
build/
## ビルド時に生成されるログやキャッシュなど
DerivedData/
## ビルドプロセス中のバックアップなどに使用
*.moved-aside
## ユーザー固有の設定情報
*.pbxuser
## 新規ユーザー用の初期設定ファイル
!default.pbxuser
## モード設定
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
## ビルドパースペクティブ
*.perspectivev3
!default.perspectivev3

## Obj-C/Swift specific
## Objective-Cのヘッダーマップ
*.hmap

## アプリのアーカイブ
*.ipa
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

## 以下ライブラリなど

# Swift Package Manager
.build/

# CocoaPods
# Pods/
# *.xcworkspace

# Firebase
GoogleService-Info.plist

# Carthage
Carthage/Build/

# Accio dependency management
Dependencies/
.accio/

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
iOSInjectionProject/

Firebaseの設定ファイルとなる「GoogleService-Info.plist」も除外するようにしてあります。

おすすめ記事:【Swift UI/Xcode】Firebaseの導入方法!Cocoa Podsでの使い方

.gitignoreを反映させる

基本的には作成したファイルを任意の階層に設置すれば自動で反映されます。もしプロジェクトを起動していた場合は一度閉じてから再度開いてください。

ですがたまにGit内のキャッシュが残っており思った通りに動作しないことがあります。その場合はキャッシュを一度削除してから再度コミットすることで正常に.gitignoreを反映させることができます。

git rm -r --cached .
git add .
git commit -m ".gitignoreを反映"

Xcodeから反映されているか確認する

実際に「.gitignore」を設置したらプロジェクトを立ち上げてXcodeの上部メニューから「Source Control」>「Commit」をクリックして追加対象となっているファイルを確認して見ましょう。

Xcode/Swiftをgitのローカルリポジトリにコミットする

チェックが入っているファイルがコミット対象になっているファイルです。「.gitignore」に記入したファイルやディレクトリはここには表示されなくなっているはずなのでまだここに表示されている場合は再度反映させてみてください。

Xcode/Swiftをgitのローカルリポジトリにコミットする

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index