ぼやき雑記

とあるフリーランスプログラマのぼやきです。

Swift作業中、XcodeをGit管理しても怖くない! できることできないこと

SwiftでiOSアプリを作る時、どうしてもXcodeを扱うことになります。
Xcodeは高級IDEであり、設定ファイルを各種扱います。
例えばiOSアプリのUIの位置や、アプリの環境設定情報などです。
そのため、git で丸ごと管理すると大量のログが出てきてしまいます。
f:id:oouchida:20180110122727p:plain

それでもgitで管理しようというお話です。
簡潔にいうと、Xcodeデグレードを復旧するのにgitはいいぞというお話です。

本来 git でやりたいこと

ソースコードの比較

私は、基本的な作業としてPHPPythonの素のコードをいじることが多いです。そのため、今までgit上で、ソースコードをどのように変更したかをgit diffで見ることができます。これがまた便利で、バグ発見によく使いやすく、ほとんどこの目的に使っています。

差し戻し

デグレード(悪い状態に戻った)した場合に、とりあえず復旧するために使います。
個人的にはこの目的では今までは使っていませんでした。PHPPythonでは、上記ソースコードの比較でデグレートは対処できるからです。悪い部分をだけを抽出して、その部分を修正するだけですむからね。

Xcodeでgitを使う場合、できること

差し戻し

デグレードを起こした場合も当然ですが、一番重要と思ったのは

  • iOSアプリのUIが崩れてしまった場合
  • 論理的なファイル構造を壊してしまった場合

など、物理的に直しようがない場合に差し戻しが使えます。
なぜ差し戻しが必要かというと、xcodeではCtrl+zでのやり直しが使えないからです。これは結構重要です。

ここで気をつけたほうがいいのは、UIや論理的なファイル構造を修正したらこまめにgit commit すること。
同時にソースコードもいじりたくなりますが、そこは我慢。

ソースコードの比較

ソースコードの比較も当然できます。ただし、上記のようにUI・論理的なファイル構造に関する修正を行う前に、ソースコードの修正を行なったらすぐにgit commit すべきでしょう。

Xcodeでgitを使う場合、できないこと

一つのUIで完結できない

上記に書いた通りなのですが、git commitを頻繁に行う必要があります。
Xcodeではgitをサポートしていない(と認識しているのですがどうでしょう?)ので、コンソールとXcodeを行ったり来たりしないといけないのが面倒ですね。
f:id:oouchida:20180110132050p:plain

まとめ

  • デグレーション対策のためにgit管理は重要
  • git commit は作業ごとにマメに

これだけ守ればよい開発ができると思います。
それではよいXcodeライフを

それではー