Xcode 9 と git と gitlab

Xcode では以前から git を使った source 管理が出来ます。github にソースを置くこともできるのですが、licence の都合、source を public にしないと無料では使えません。private はお金がかかるということで、git の clone はないかと色々探していたら、gitlab というサーバがあり、Xcode 6 辺りでは問題なく同期できていたので重宝していたのですが、Xcode 7 辺りから通信が通らなくなり困っていました。

そうしたところ、Xcode  9 で気付いたのですが、git 機能が随分と進化しており local git でも command line からのイミフな操作に頼らずとも、XcodeGUI である程度必要機能が充たせるところまできています。

今困っているのは、Xcode 9 の Interface builder で、機能がかなり充実してきてすごく良くなったんですが、stack view の中に text label を 2 つ配置したところで必ず固まってしまい、もう、開けなくなってしまうのが困って困ってしょうがないところ。どれくらい困っているかというと、もう開けなくなったら、しょうがないので、作り直すのですが、5 回も作り直すハメになってしまい、いくらなんでもこれは bug だろうと思い、いい加減直して欲しいところなんですが、それは御本尊のみ知る神の世界で、末端の開発者は祈るぐらいしか出来ないのが悲しいところ。自衛の意味で、git で昨日の source に戻りたい!それでもダメならもう一つ前の version にというのが、果たしてどうやるのかよく分からなかった、あるいは、従来の Xcode では出来なかったのですが、前述の通り Xcode 9 では可能になっていました。

具体的には、git のアイコンを叩いて表示される commit 一覧から、戻したい version を選び、CTRL + click で、checkout を選ぶと戻せます、戻せるようになりました。やや横道に逸れると、git の checkout の意味がやや分かりにくいのですが、ホテルに泊まって chekcout = もう清算、あるいは、出る、とういうような感覚でいると、真逆なので注意が必要です。この分かりにくさを git user  がよく我慢できるなと思うのですが、例示の表現では、checkout = checkin の意味合いが強いと考えると合点の行くところなんです。checkout すると、その時点の source に戻れますという感じでしょうか。

これで、任意の時点に戻れるようになったので、今後 Interface builder の bug のせいで、Main.storyboard が開けなくなっても、一つ前に戻ることで被害は最小限に留める見通しが立ちます。

それでもなお、やや困ったのが、今使えているのが local git なので、仕事でやりとりする source  はどうしたものかと。他の企業とやりとりすることもあるので、どうやって source をやりとりすればよいか。

git clone で free で、Xcode からの通信が通るのが出てくると嬉しいのですが・・・