クイズアプリ開発入門書を書きました。

【Gitの無駄な差分】GitでXcodeの「UserInterfaceState.xcuserstate」と「xcdebugger/Breakpoints_v2.xcbkptlist」ファイルの差分を無視する方法

サトリク

どうもサトリクです。

iOSアプリ開発(Xcode)でGitを使っていると、何も変更していないのに、git diffしたときに差分が出てしまう現象を解消する方法をご紹介します。

無駄な差分「UserInterfaceState.xcuserstate」と「xcdebugger/Breakpoints_v2.xcbkptlist」

まず、開発しているときに出てしまう無駄な差分は2つあります。

「UserInterfaceState.xcuserstate」と「xcdebugger/Breakpoints_v2.xcbkptlist」です。

「UserInterfaceState.xcuserstate」は何?

「UserInterfaceState.xcuserstate」は、.storyboardなどのレイアウトファイルを、オブジェクトそのものではなく、ただ単に見るために拡大・縮小・位置を変更するだけで変更されます。

つまり、これをこうするだけで変更されてしまう。

「xcdebugger/Breakpoints_v2.xcbkptlist」は何?

これはブレークポイントを変更したときに、差分が出てしまいます。

Gitで無視する方法

では、先ほど解説した2つのファイルを無視する。差分に出さないようにする方法を解説していきます。

どうやるかというと、gitの差分に出ないように、gitに設定を加えます。

手順は簡単で

  1. .gitignoreファイル作成
  2. 書き込み
  3. キャッシュ削除
  4. コミット

だけです。

では丁寧に解説していきます。

STEP.1
まっさらにする

まずは、cdコマンドでプロジェクトにいき、コミットしてまっさらな状態にしておきましょう。

git add .
git commit -m "一旦コミット"

 

以下のように、git statusと打って何も変更ないことを確認しましょう。今回該当の差分があってもOK

STEP.2
差分が出てしまうか確認

一回、storyboardを適当にいじって、ViewControllerで適当な場所にブレークポイントを置いて

もう一度git statusで確認してみましょう。

そうすると、以下のように、UserInterfaceStateとBreakpointsの差分が現れると思います。

modified:   AchievementHabit.xcworkspace/xcuserdata/rikutosato.xcuserdatad/UserInterfaceState.xcuserstate
modified:   AchievementHabit.xcworkspace/xcuserdata/rikutosato.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

 

STEP.3
gitignoreを作成

以下のコマンドを打ってください。

touch .gitignore

これで、.gitignoreというファイルが作成されました。

STEP.4
ファイルが作成されているか確認

以下のコマンドを入力して.gitignoreがあることを確認しましょう。

ls -a

STEP.5
書き込み

次に、.gitignoreファイルの中身を書き換えていきます。

以下のコマンドを入力してください。

vi .gitignore

このような状態になるので、iを押してINSERTモードにしましょう。

こうなっていればOK

以下の記述をコピペしてください。

UserInterfaceState.xcuserstate
xcdebugger

記述したら、escを押して、:wqと入力してください。これで保存しました。

STEP.6
書き込めているか確認

以下のコマンドを打って書き込めてるか確認しましょう。

cat .gitignore

STEP.7
もう一度git statusで確認

もう一度git statusで確認します。

STEP.8
1つ目のキャッシュクリア

キャッシュをクリアします。git rm --cached と打って、1つ目の差分のUseerInterfaceStateのパスを丸々コピペしてください。

git rm --cached AchievementHabit.xcworkspace/xcuserdata/rikutosato.xcuserdatad/UserInterfaceState.xcuserstate

STEP.9
2つ目のキャッシュクリア

先ほどと同じく、git rm --cached と打って、2つ目の差分のパスをコピペしてください。

git rm --cached AchievementHabit.xcworkspace/xcuserdata/rikutosato.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

STEP.10
一旦コミット

一旦いつも通り、コミットしてください。

STEP.11
除外されているか確認

storyboardを適当にいじって、ViewControllerで適当な場所にブレークポイントを打って、git statusで確認してみましょう。

おそらく差分が表示されないはずです!

完了

お疲れ様でした!

これで、差分が出てこなくなって気持ちよく開発ができるようになりましたね!

まとめ

このgitignoreを使って差分に出さない方法の記事がたくさんあったのですが、どれもわかりづらかったので、わかりやすくまとめました。

今後もわかりにくい記事をこのブログでわかりやすく解説していくので、ブックマーク宜しくお願いします。

他にもXcode、Swift関連の記事を書いています

よかったら他の記事もみてみてください。