2017-07-21 3 views
1

別のブランチからの変更をいくつかマージしようとしています(例:thatブランチ)。 thatブランチの既存ファイルの変更を保存したいのですが、thatブランチでもいくつかのファイルが削除され、そのファイルはthisブランチで削除しないでください。他のブランチで削除されたファイルは、手動git mergeで 'undeleted'できますか?

通常、マージするとファイルがthisから削除されます。

私は(thisブランチにある)git merge --no-commit thatの間に、削除されたファイルを保存しようとしています。出来ますか?

マージに私はgit checkout --ours dontDeleteMe.txtを使用してファイルを復元しようが、私はdontDeleteMe.txtthisブランチに存在しているにもかかわらず、error: pathspec 'dontDeleteMe.txt' did not match any file(s) known to git.を取得している間(つまり私は、マージを開始HEAD)。
git checkout --theirs dontDeleteMe.txtおよびgit checkout dontDeleteMe.txtも同じ結果を与える。

私はここでは不可能を達成しようとしていますか、何か間違っていますか?

答えて

1

git merge --no-commit thatを実行します。

dontDeleteMe.txtとしたいリビジョンを、dontDeleteMe.txtがマージ中に削除されるように指定する必要があります。

使用git checkout this -- dontDeleteMe.txtまたはgit checkout HEAD~1 -- dontDeleteMe.txt

チェックアウトが--oursパラメータと--theirsのみ競合のために働きます。

関連する問題