5

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

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

git rm -r qooxdoogit
サブモジュールaddgit://github.com/qooxdoo/qooxdoo.git qooxdoo

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

まだqooxdoo-updateブランチにいる間に、次のコマンドを発行します。

gitマージオリジン/マスター

CONFLICT(ファイル/ディレクトリ):origin/masterにqooxdooという名前のディレクトリがあります。qooxdoo〜HEADとしてqooxdooを追加する

それから...

git status
マージされていないパス:(解決策をマークするには、必要に応じて「git add / rm ...」を使用してください)

   added by us:        qooxdoo

ランニング...

git rm qooxdoo
qooxdoo:マージが必要rm'qooxdoo'ファイル'qooxdoo
'の
リンク解除に失敗しました。もう一度やり直しますか?(y / n)

また...

git add qooxdoo
エラー:ファイルのインデックスを作成できませんqooxdoo
致命的:ファイルの更新に失敗しました

そのため、マージを正常に完了するためにその競合を解決する方法がよくわかりません。

4

2 に答える 2

1

ファイル/ディレクトリの以前の最新バージョンに戻りたい場合は、以下を実行します。

git reset HEAD qooxdoo

動作するはずです。

于 2016-05-22T14:45:17.177 に答える
0

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

于 2013-11-04T00:03:03.420 に答える