UnityとGitでConflictを起こした時の対処
UnityとGitでConflictが起きた!
頑張って解消しよう!
Git管理していたUnityプロジェクトでコンフリクトが起きた時の対処
みなさんUnityのチーム開発をするとき何を使っていますか?
Unityは専用のバージョン管理ソフトがあるようですが、私はGit管理しています。
その際のgitconfig設定やgitignoreの内容などなどは、ネットの海に転がっていると思うのでここでは割愛_(:3」∠)_
とりあえずちょくちょく衝突が起こるし、起こった度にググってるので、その対処をメモ。
Conflictが起こるまで~最初のpush~
---ProjectをセーブしてUnity終了 --- > git status hogehoge.... fugafuga---- > git add . > git checkout -b "Update" > git commit -m "Update したよ!" > git push --set-upstream origin feature/Update
ターミナル上では大体こんな感じじゃなかろうか
Updateというローカルブランチを作成して、リモートにも同じブランチを作成しつつpush。
でWebコンソールからメインブランチにPullリクエストすると、オートマージ可能だと「Able to Merge」が出てきます。
ここをワンクリックでマージされます。
コンフリクトがあると、「Can't Auto Merge」がばば~んと出てきます。
うわぁ…めんどくさぁってテンションサゲサゲな表示です。
まずは表示されたStep 1をそのままやる
その前に私は新しいディレクトリにクローンさせてすっきりさせます。
>git clone [クローンするURL]
ここから表示されたStepに沿って解決します
>git checkout -b [新たに作成するローカルブランチ] [リモートのマージ先ブランチ]
リモートのマージ先ブランチ... origin/masterとか
git pull [Pull URL] [リモートのマージをさせたいブランチ]
リモートのマージをさせたいブランチ...先の例でいうUpdateとか
ここで手動マージをします。
フォルダを開いて、Visual Studioなりでコンフリクトを起こしたファイルを開いて、どっちを選択するか一つ一つチェックしていきます。
全部修正して保存し終わったら
git add . git commit git checkout [リモートのマージ先ブランチ] git merge --no-ff [リモートのマージをさせたいブランチ] git push [リモートのマージ先ブランチ]
これで完了!