この記事では、.gitignore
の使い方から、自分が実際に使っている.gitignore
の内容を解説していきたいと思います。
.gitignoreとは?
簡単にいうと、Gitにアップロードする際に、除外したいファイルを記載するファイルのことです。
.gitignoreを作成し、そのファイルにパスを書くと、そのパスのファイルはGitにアップロードされません。
例えば、Xcodeで機能を実装して、Gitの差分を確認すると、必ずUserInterfaceState.xcuserstate
というファイルが変わっているはずです。これは、Xcodeを触ると変更されるファイルなので、このように差分に出てきてしまうんですね。
このように、差分に出てきて欲しくないファイルを、.gitignoreに記述することで除外することができます。
.gitignoreの作り方
まずは、.gitignoreのファイルを作ります。
ターミナルを起動して、プロジェクトに移動しましょう。
cd プロジェクトのパス
以下のコマンドを打ってください。これで、.gitignore
というファイルが作られます。
touch .gitignore
.gitignore
を開きましょう。
open .gitignore
このファイルにこのようにパスを記載すると、Gitのアップロード対象から除外できます。
記載内容は後述します。
これで、Gitの差分にわけわからない情報が表示されなくなりました。
.gitignoreの内容
自分が使ってる.gitignore
# Xcode ## Mac OS X .DS_Store ## Xcode build files build/ DerivedData/ ## Xcode settings *.pbxuser *.mode1v3 *.mode2v3 *.perspectivev3 !default.pbxuser !default.mode1v3 !default.mode2v3 !default.perspectivev3*.xcodeproj/* ## App packaging *.ipa *.dSYM.zip *.dSYM ## Xcode Patch *.xcodeproj/* !*.xcodeproj/project.pbxproj !*.xcodeproj/xcshareddata/ !*.xcworkspace/contents.xcworkspacedata ## library Pods/* Carthage/Build/ ## Other *.moved-aside *.xccheckout *.xcscmblueprint *.xcuserstate *.swp xcuserdata/ *.moved-aside !.gitkeep
*.hmap *.ipa *.xcuserstate *.dSYM timeline.xctimeline playground.xcworkspace .build/ Carthage/Build/ Dependencies/ .accio/ fastlane/report.xml fastlane/Preview.html fastlane/screenshots/**/*.png fastlane/test_output iOSInjectionProject/ xcuserdata/ build/ DerivedData/ *.xcscmblueprint *.xccheckout *.moved-aside *.pbxuser *.mode1v3 *.mode2v3 *.perspectivev3 !default.pbxuser !default.mode1v3 !default.mode2v3 !default.perspectivev3*.xcodeproj/* *.xcodeproj/* *.xcodeproj/project.pbxproj *.xcodeproj/xcshareddata/ !*.xcworkspace/contents.xcworkspacedata **/xcshareddata/WorkspaceSettings.xcsettings Pods/* *.swp .DS_Store /*.gcno
結構ありますね。。
ざっくり解説
.DS_Store
フォルダの表示設定に関する情報を保存するファイル。詳しくはこちら
build/
ビルドファイル。
DerivedData/
プロジェクトごとに生成するキャッシュデータ、インデックス、ログなどが入っているデータ。
*.pbxuser *.mode1v3 *.mode2v3 *.perspectivev3 !default.pbxuser !default.mode1v3 !default.mode2v3 !default.perspectivev3*.xcodeproj/*
Xcodeの設定など。ブレークポイントやウィンドウのサイズ、ブックマークなど。
*.ipa
ipaファイルを作成すると作られるファイル
*.dSYM.zip *.dSYM
dSYMは、debug symbolの略で、アプリをコンパイルする過程で生成されるアプリのソースコードに含まれるクラス名やグローバル変数、メソッド名などのシンボル(名前)のリストのこと。
どこでクラッシュしたのかを解析する時に使われる。
*.xcodeproj/* *.xcodeproj/project.pbxproj *.xcodeproj/xcshareddata/ !*.xcworkspace/contents.xcworkspacedata
XcodeのプロジェクトのBuild Scheme、構成などが入っているデータ。
Pods/*
CocoaPodsでインストールしたライブラリのデータ。
Carthage/Build/
Carthageでインストールしたライブラリのデータ。
そこまでしっかりとなんだかわかってないものも入れているので、参考程度にしてください。
参考文献