私はこれを行うためのゴミの少ない方法を探しています:
git diff patch.DisableCreditCheck > ~/patch
patch -p1 < ~/patch
すなわち。生の未コミットの変更としてのブランチからの変更。
patch の欠点は、あまり賢くないことです。たとえば、「リバースされた (または以前に適用された) パッチが検出されました! Assume -R[n]?」というメッセージがよく表示されます。以前のパッチがない場合、混乱する一連のファイル名がたまたまあるだけです。
これを行うことができれば、はるかに良いでしょう:
git merge --no-commit --no-ff patch.DisableCreditCheck
...しかし、それではマージ状態のままになり、変更を保持しながら通常の状態に戻る明白な方法はありません。
ヘルプ!これを行う適切な方法はありますか?
(これは、作業中のコードのパッチを共有するときに実行できる非常に便利なことです。一連のパッチ ファイルを渡すよりもはるかに優れています)
編集: 私が達成しようとしていることの例として、master と config.me の 2 つのブランチがあるとします。
git diff config.me > ~/patch; を実行すると patch -p1 < ~/patch 結果は次のとおりです。
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: Web/Web.config
#
これは望ましい結果です...しかし、パッチを使用しないと、うまく機能しません(特にWindowsでは、完全にマージする必要がある変更を検出するのが非常に悪いようですが、代わりに混乱して大量の.origを書き出しますおよび .rej ファイル)。
だから、私が言ったように; ローカルのコミットされていない変更として、コミットなしでブランチからの変更が必要です。