web-dev-qa-db-ja.com

gitは、マージ中に削除された単一のファイルを回復します

私は現在ブランチ「foo」にいます。実行したばかりですgit merge master。唯一の問題は、fooに保持したい特定のファイルがあったことです。それを取り戻すが、マージマスターからの他のすべての変更を保持する方法はありますか?

43
tybro0103

次のようなものを試してください。

git checkout HEAD -- filename

これにより、ファイルバックが1つのコミットにロールバックされます。特定のコミットにさらに戻りたい場合は、コミットハッシュを使用するか、HEADキーワードの末尾に^ Nを追加します。例:HEAD^2

46
Bartek

現在の状況から問題を修正する方法がわかりませんが、git merge -s oursを確認することをお勧めします。ドキュメントは ここ です。

ワークフローは

  1. aからブランチmasterを作成します
  2. aにマージして戻したくないブランチmasterでカスタム変更を行います
  3. mastergit merge -s ours aをチェックしてください
  4. aをチェックして、作業とコミットを続けてください。

これで、マスターとマージするときに、ステップ2のカスタム変更は無視されます。

0
Gattster