非常に単純な間違いをしています。通常のパッチファイルを準備しようとしているので、いくつかの変更を再適用できます。
$ git diff > before
$ git diff something_here > save.patch
$ git checkout .
$ patch < save.patch
$ git diff > after
$ diff before after
$
と something_here
、ブランクそれはほとんど動作しますが、ファイル名が正しくありません。私はいくつかのオプションが欠けているだけだと思います。
実際には、チェックアウト後にマージを実行するので、パッチが失敗する可能性がありますが、私が何をしているかがわかります。
間違った質問をしたため、ここで私の誤りを編集します。実際の質問は、変更を保存してマージし、可能であれば変更を再適用することです。私は慣れているので間違った方法で尋ねましたパッチをしてこれらの種類の問題を解決するており、git diff
それが私がしたかったように見えた。
チャールズベイリーズ コメントには正しい答えがありました。私にとって、git-applyは正しいことです(git-stashは必要以上に重く見え、リベースとバンドルは間違いなく私の現在のスキルレベルを超えています。)私はチャールズの回答を受け入れます(なぜなら、コメントは受け付けません)。すべての提案をありがとう。
編集、6年後
この話題に詳しい人なら誰でも知っているように、私はの難しさを過大評価しましたgit stash
。ほぼ毎日、次のシーケンスを使用します。
$ git stash
$ git merge
$ git stash pop
git stash
他のgitツールではなくパッチが必要ですか?
git stash
があなたがやろうとしていることの最も簡単な解決策だと思いますが、機能するアプローチはたくさんあります。
git-svn
。
patch
のではなく、はgit apply
?