2012-12-07 9 views
5

私たちのアプリケーションではQooxdooフレームワークを使用しています。今のところコピーはGitリポジトリのルートフォルダ "qooxdoo"に保存されています。私たちはそれをGitHub Qooxdooリポジトリに直接指し示すサブモジュールに置き換えることにしました。これにより、将来新しいバージョンをより簡単にチェックアウトすることができます。サブモジュールに切り替え中にGitがマージする

qooxdoo-updateと呼ばれるマスターに基づいて、これらの変更のためにブランチを作成しました。古いフォルダを完全に削除し、qooxdooのサブモジュールを追加しました。

git rm -r qooxdoo
git submodule add git://github.com/qooxdoo/qooxdoo.git qooxdoo

これまでのところ、これはかなりうまくいきます。しかし、他の開発者が新しいバージョンのコードをテストできるようになるまで、このブランチにマスターをマージして更新したいときに問題が発生します。

まだqooxdoo更新ブランチに私は、コマンドを発行中:

git merge origin/master

CONFLICT (file/directory): There is a directory with name qooxdoo in origin/master. Adding qooxdoo as qooxdoo~HEAD

そして...

git status
Unmerged paths: (use "git add/rm ..." as appropriate to mark resolution)

added by us:  qooxdoo 
実行し

...

git rm qooxdoo
qooxdoo: needs merge
rm 'qooxdoo'
Unlink of file 'qooxdoo' failed. Should I try again? (y/n)

か...

git add qooxdoo
error: unable to index file qooxdoo
fatal: updating files failed

だから私は本当にどのようにマージを正常に完了するためにその競合を解決するか分からない。

+1

'git mergetool'を実行すると、それを取るか、あなたのIIRCを保持するオプションが与えられます。通常、mergetoolは競合を解決する最も簡単な方法です。 – asm

+0

ええ、私は分かりますが、それは問題を解決しません。私はTortoiseGitもここに持っていて、そこでは衝突を解決しようとしましたが、同じエラーメッセージで終了しました。 – FredyC

+0

[gitエラー:ファイルCrashlytics.framework /ヘッダーをインデックスできません](http://stackoverflow.com/questions/30580948/git-error-unable-to-index-file-crashlytics-framework-headers) – kenorb

答えて

0

git rm -rf qooxdooコマンドは、独自のコミットで実行され、サブモジュールが追加されている必要があります。それはgit(マスタからブランチにマージするとき)に意図について伝えます。現在のところ、マージされている同じコミットはファイル/コンテンツを置き換えるだけなので、gitは混乱します。マスターコミットを再生できますか?実行

+0

申し訳ありませんが、そのレポは長くなってしまったので、私はそれをテストすることはできません。しかし、あなたは答えが論理的だと思われるので、それはあなたです;) – FredyC

+0

nope。それはgitを "un-confuse"しない –

1

あなたのファイル/ディレクトリの以前の最近のバージョンに戻って来てほしい場合は、:

git reset HEAD qooxdoo 

が動作するはずです。

関連する問題