2017-10-13 47 views
0

私は3つの枝:master,featureXおよびrevertFeatureXを持っています。削除されたファイルを再追加

  1. マスターからfeatureXを作成して変更します。
  2. featureXをマスターにマージします。
  3. マスターからrevertFeatureXを作成します。
  4. featureXの新しいファイルと変更を手動で削除します。
  5. revertFeatureXをマスターにマージします。
  6. featureXいくつかの変更が加えられました。

今私の問題は次のとおりです。featureXを再びマージしようとすると、手順6の変更がマージされます。しかし、featureXからの変更ではありません。

手順1の変更を元に戻すにはどうすればよいですか?

+1

あなたは少し問題があるようですね! featureXから 'git cherry-pick'を使ってみましたか? –

+0

'git merge'は、最も最近の共通コミット以来、ブランチ上で操作された変更を適用します。 'featureX'を一度マージしたので、マージの前に' featureX'で操作された変更は考慮されません。彼らはすでに(彼らのうちのいくつかがキャンセルされたり、上書きされたとしても) 'master 'ブランチにすでに存在しています。 – axiac

答えて

1

ありがとうStuart Buckinghamをやって見つけることによって、古いファイルをチェックアウトすることができますがヒント。 は、私は問題をこのように解決: は

  • 桜が-選ぶマスター
  • から

    1. 新支店featureX_readdを最後にfeatureX_readdをマージfeatureX_readd
    2. マージブランチfeatureX(私の質問のステップ1の)コミットmaster - >完了しました。
    +1

    +1これは、ファイルをコピーして最初から追加するよりはるかに良い解決策です。この方法であなたはまだあなたのコミットの歴史を持っています。それを稼働させていただきありがとうございます。 –

    0

    それは一つだけ(あなたのタイトルが示すように)が欠落しているファイルではなく、個々のコミットの場合は、関連するあなたのgit logにコミットが、その後git checkout <COMMIT ID> <MISSING FILE>

    +0

    1つのファイルだけでなく、ヒントを得て、すべてのファイルをコピーし、新しいブランチを作成して新しいブランチに貼り付けます。それは簡単ですか? – user6537157

    +0

    これはおそらく簡単ですが、バージョン履歴をすべて失うことになります。これは最初の場所でgitを使用する目的を無効にします –

    関連する問題