こちらの記事で、Unity プロジェクトを SourceTree と GitHub で管理する方法が詳しく説明されています。おすすめです。

上の記事の手順に限らず、GitHub と SourceTree を使う際にエラーが出ることがあるので、3点ほど書き留めておきます。備忘録。


※ お願い:以下、Git に詳しい方、誤り等を見つけたらコメントください。


1. ローカルリポジトリ作成時にエラーメッセージが出る(おそらく問題なし)

まずはこちら。ローカルリポジトリ作成時にUnityプロジェクトのフォルダを指定しますが、下図のようなエラーメッセージが表示されます。
これは無視して問題なさそうです。「エラー」ではなく、「確認」くらいの意味のメッセージだと思います。
スクリーンショット (746).png

いきなり「エラー」というメッセージはこわいですよね。。。
でも、これに関しては問題ないようなのです。

参考。


2. リモートリポジトリとHTTPS接続できない

こちらの環境では、GitHub に表示される連携用のURLを使った場合に、うまく連携できなくなってしまっていました。以前(1~2年前)に GitHub のテストをしたときは問題なかったはずなんですが。何もしてないのに!

この件は、こちらの記事のとおり対応したらうまくいきました。

連携する URL を
https://github.com/【USER】/【PROJECT】.github.io.git
という形式から、
https://【USER】@github.com/【USER】/【PROJECT】.github.io.git
という形式に変えるとうまくいく(ことがある)ようです。

(このやり方を見つける前は、SSL 接続に切り替えていました。でも SSL 接続の方法はけっこう面倒だったので、今回は紹介しません。暗号鍵を作ったりする必要あり)


3. リモートリポジトリと初回のプルができない

初回のプルの際に下図のようなエラーが出ることがあります。
スクリーンショット (799).png

謎のメッセージ。文字化けもある。Git こわい。
最後の行は「ひすとりー(変更の履歴)が関連付けられていないものがあるのでマージを拒否しました」的なことなのかなと。

どうやら、リモートリポジトリ(GitHub)と連携する前にローカルリポジトリだけでコミットしたりしていると、このようなエラーが出ることがある気がします。

なので、GitHubと連携する前にローカルリポジトリだけで先にコミットしない、これで済むなら話が早い。冒頭で紹介した記事でもそういう方法になっていますね。

もしローカルリポジトリで先にコミットしていて、上の図のようなエラーが出る場合、SourceTree のターミナル からなら、 --allow-unrelated-histories オプションを付けてプルを実行することができます。

スクリーンショット (801).png

なお、上のコマンド実行後、コミット用のコメントをつけるよう促されます。が、この画面からどうやって抜けるのか分からず苦労しました。。。(スクリーンショット取り忘れた)

コミット用コメントの編集画面の操作方法は、こんな感じです。
スクリーンショット (796).png
参考記事。

さて、もしリモートリポジトリ側とローカル側で、同一ファイルを持っていてコンフリクト(競合)した場合は、SourceTree でどちらかを選ぶことができます。(または問題がないようファイルを編集する)

スクリーンショット (803)

まだまだ慣れない Git 関連。引き続き修行したいと思います。


今回は以上です。



Gitが、おもしろいほどわかる基本の使い方33
エムディエヌコーポレーション(MdN) (2015-05-26)