79

メインブランチがチェックアウトされ、ファイルの山全体が変更され、コミットされていないサーバー上に git 制御フォルダーがあります。変更を別のブランチにコミットして、クリーン バージョンに戻す方法はありますか?

つまり、この人の変更をすべて効果的に元に戻したいのですが、別の機会にそれらを保存して、その人が変更を必要とする場合は、そのブランチに切り替えることができます。

(はい、これは git が機能するように設計された方法ではないことはわかっていますが、それが私の状況です!) どんなアイデアでも大歓迎です。

4

3 に答える 3

138

まず、現在の HEAD に基づく別のブランチへの移動は、次のように実行されます。

git checkout -b newbranch

すべての変更をコミットします (新しく追加されたファイルがない場合、それ以外の場合git add):

git commit -a

master ブランチに戻ります。

git checkout master

以前にコミットされていない変更はすべて newbranch ブランチにあり、master はそれらの変更がない状態のままです。

于 2009-09-21T06:52:28.887 に答える
13

いつでも変更を隠しておくことができます。

git stash
git checkout -b bravenewmaster
git stash apply

また、ブランチはコミットへのポインタにすぎないため、「間違った」ブランチにコミットした場合、いつでもそのブランチを戻すことができることに注意してください。

于 2009-09-21T06:45:13.957 に答える