Hatena::ブログ(Diary)

Object for cutie

2014-01-01

storyboardがコンフリクトした時のマージ手順メモ

storyboardがconflictした時のマージ手順メモ。

殆どここの通りGit-のブランチ機能-ブランチとマージの基本


<前提条件>

・masterと機能ブランチfooがある

・カレントディレクトリは機能ブランチfoo


<やりたい事>

・masterの最新状態を機能ブランチfooにマージしたい

・conflictした箇所はfooの内容は破棄しmasterを生かしたい

※マージせずconflictする前に戻したいならgit reset --hard HEADで。参考:git-resetは結局何を戻すのか


<手順>

masterの変更をfooにマージ

git merge master


storyboardがconflictし自動マージが失敗する

warning: Cannot merge binary files:xxx/Base.lproj/MainStoryboard.storyboard (HEAD vs. master)

Auto-merging xxx/Base.lproj/MainStoryboard.storyboard

CONFLICT (content): Merge conflict in xxx/Base.lproj/MainStoryboard.storyboard


conflictが発生したxxx.storyboardをエディタで開くと以下のようになっている。

=======の上がローカルの変更、下がmasterの変更となる

<<<<<<< HEAD

xxxxx(ローカルの変更)

=======

yyyyy(リモートの変更)

>>>>>>> master


masterの変更を採用しローカルの変更を取り消したいので<<やHEAD、>>master等の行を削除

yyyyy(リモートの変更)


全ての箇所を同様に修正し保存するが、これだけではxcode上のCマークは消えない為conflictの解決を通知

git add xxx.storyboard


storyboardをaddでステージングしてもxcodeGUIからpush、commitしようとすると、

マージ中のエラーとなったのでterminalからgit commitしてpushした。

fatal: cannot do a partial commit during a merge


<その他>

以下記事を参考に*.storyborad -crlf -diff -mergeを記載した.gitattributeを.gitと同階層に配置したが、

マージ時にHEADの状態が維持されずconflictしてしまった。理由が分かる人教えてください。

iOS開発でGitを利用する際のTips

xai1981xai1981 2014/10/29 13:50 -i を追加したらできました。

http://www.freeshow.net.cn/ja/questions/7df56b9a4be818404475f798b40730e91ac2e921d223ca99412446e88c5a0ba2/

tanaponchikiduntanaponchikidun 2014/11/05 21:15 おお、ありがとうございます!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/tanaponchikidun/20140101/1388569315
リンク元
Connection: close