メインブランチがチェックアウトされ、ファイルの山全体が変更されてコミットされていないサーバー上にgit制御フォルダーがあります。変更を別のブランチにコミットして、クリーンバージョンに戻る方法はありますか?
つまり、このすべての人の変更を効果的に元に戻したいが、別の機会に保存して、その人が自分の変更を希望する場合は、そのブランチに切り替えられるようにします。
(はい、これはgitが機能するように設計された方法ではないことを知っていますが、それは私の状況です!)どんなアイデアでも大歓迎です。
まず、現在のHEADに基づいて別のブランチに移動すると、次のように実行されます。
git checkout -b newbranch
すべての変更をコミットします(新しく追加されたファイルがない場合、それ以外の場合はgit add
それら):
git commit -a
Masterブランチに戻ります。
git checkout master
以前にコミットされていない変更はすべてnewbranchブランチにあり、masterはそれらの変更がない状態のままです。
この方法は便利です。
git checkout -B <new_branch> <start point>
どこ:
<new_branch>
は新しいブランチです(例:my_branch
)<start point>
は開始ブランチです(あなたの場合はmaster
)-B
は<start point>
から始まる新しいブランチを作成し、既に存在する場合はリセットします(ブランチが既に存在する場合は-b
として失敗しません)-m
は、ブランチを切り替えるときに指定するのに役立ちます。これにより、現在のブランチと作業ツリーの内容(スクリプト作成に便利)の間で3方向のマージが実行されます。詳細については、man git-checkout
を参照してください。
変更はいつでも隠しておくことができます。
git stash
git checkout -b bravenewmaster
git stash apply
また、「間違った」ブランチにコミットする場合、ブランチはいつでも元に戻すことができます。ブランチはコミットへのポインタにすぎないためです。