2012-03-21 21 views
1

私はサブモジュールを持っています。私はブランチを更新し、 "x"と言ってコミットしました。今、私はXといくつかの違いがあるブランチ "Y"の同じ変更を更新する必要があります。gitはステージングからマージするファイルを削除します

これは私がやっていることです、私はYをチェックアウトし、git merge Xを実行します。いくつかの競合は解決されません。たとえば、変更ログなどです。私が持っているchangelogファイルは、debian/changelogと競合し、別のファイルに競合があります。

私がしたいのは、他の変更を加えながらdebian/changelogを更新しないことです。この時点で投票をしないでください。私はたくさんのことを試していて、git rmのmanページも読んでいます。

git rm --cached debian/changelogこれをやってみましたが、削除されたコミットする変更のリストに追加しました。これは、リモートのgitリポジトリでこれを削除したくないため、心配しています。お知らせ下さい。

答えて

1

一般に、特定のファイルのマージを無視するには、この場合は"keepMine" scriptというmerge driverと設定します。

git rmの必要はありません。そのスクリプトは、宛先ファイル(つまり、1つのブランチY)を常に保持するように、任意の*.logファイル(たとえば)のコンフリクトが発生した場合に確実に処理します。

+0

私の質問は、マージのためだけではありません。インデックスからファイルを削除する方法を知りたい。次回は別のファイルかもしれないし、このコマンドを使う必要があります。しかし、私は手動の仕事の多くであるいくつかのマージのためにkeepMineスクリプトを使用します。ありがとうございました。 –

関連する問題