0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[GitHub]gitignoreについて

Last updated at Posted at 2025-04-07

gitignoreの作成方法

今回はgitignoreの作成について纏めます。
gitignoreは追跡したくない、あるいはGitの管理下に置きたくないディレクトリやファイルを指定することができます。
このgitignoreに追跡したくないディレクトリやファイルを指定すると、add、commit、pushなどされず、Gitの管理対象から外すことができるのでリポジトリに反映されることはありません。

参考文献

gitignoreの作成手順

1️⃣.gitignoreファイルを作成していきます

対象のリポジトリのルートディレクトリにcdコマンドで移動します。
そのPJフォルダに対してtouch .gitignoreを実行

touch .gitignore

作成できたか確認を行います。

ls -la

Finderでは隠しファイル(ドットで始まるファイル)は表示されません。
Shift + Command + .(ドット) を押すと表示・非表示の切り替えができます。

2️⃣管理対象外にしたいファイルを指定

では実際に管理対象に外したいファイルを指定していきます。
ここで指定することによりGitの差分監視対象から除外されます。
Gitの管理対象はチームで共有すべき「ソースコードやリソース」だけにします。

例えば.DS_StorePods/などがあります。

  • 自動生成ファイル:「アプリが勝手に作るファイル」Pods/build/, DerivedData/など)

    • 例えばPods/はCocoaPodsで追加したライブラリ群です
      このような自動生成ファイルは数千〜数万のファイルになることもあります。
      これをGitで管理するとクローン・プッシュ・プルが重くなってしまいます。
  • 個人の環境ファイル:「自分のMacにしか関係ないファイル」.DS_Storeなど)

    • 例えば.DS_StoreはMacのフォルダ設定ファイルです
      これを毎回上げると無意味な変更がGitに表示されて、レビューがめんどくさくなります。
  • 秘密情報・設定ファイル:「個人の鍵」や「金庫の暗証番号」GoogleService-Info.plist、)

    • 例えばGoogleService-Info.plistはFirebaseなどの設定ファイルになり、アプリの秘密鍵が入ってる可能性あります
      APIキー、DBパスワード、Firebase情報などが公開リポジトリにアップロードされる可能性があります。
  • Xcodeプロジェクト特有のファイル:「人によって違う設定」UserInterfaceState.xcuserstatexcdebuggerxcschememanagement.plistなど)

    • 例えばカーソル位置やタブの開き具合など個人のエディタ状態を記録するUserInterfaceState.xcuserstateや、ブレークポイントなどXcodeデバッグ設定を含むファイルのxcdebuggerがあります
    • このような個人設定ファイルを共有すると、他の人のXcodeが変な挙動をすることもあります
      「チームメンバーのビルドできない or 動作がおかしいと連絡してくる」など問題が発生します。

このように容量が重くなり作業が遅くなる、秘密情報が漏れセキュリティリスクが高まる、設定の不一致が発生し他の人がうまく動かせない、差分がゴチャゴチャになりレビューが大変になる。など様々な問題が発生するため含めないようにします。

今回は下記を含めないよう指定します。

  • Pods/
  • .DS_Store
  • */ios/GoogleService-Info.plist
  • UserInterfaceState.xcuserstate
  • xcdebugger
  • xcschememanagement.plist

注意:最後に空白行を1行追加するのがおすすめです。これは、最終行が正しく読み込まれない場合を防ぐためです。

ここまで対応したらcommand + Sで保存して閉じれば完成です。

⚠️対象外となるファイル

gitignoreに追加したファイルは、以降Gitの監視対象から除外されましたが、既に過去でコミットしてしまった物に関してはgitignoreに登録しているものは正常に除外されたわけではありません。
なので既にコミットしたことのあるファイルやディレクトリに関しては、下記のコマンドを実行してください。

 git rm -r --cached <ファイル名>

ファイル自体はローカルから削除されず、Gitの管理からだけ外されます。
これを行うことでキャッシュが削除され、以降は完全に監視対象から除外されるようになってます。

まとめ

今回はgitignoreファイルについてまとめました。これも開発PJなどにより変更されると思いますが、何を入れる入れないの判断ができるように、ファイルの種類や影響を理解しておくことが大切だと感じました。
プロジェクトごとの特性に応じて柔軟に対応していくことも意識したいです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?