2012-11-21 10 views
8

ショートバージョンをマスターに等しいはGitのブランチ再び

作る任意の違いを捨て、再びmasterに等しいブランチを作るための最も簡単な方法は何ですか? 今まで私は単にgit branch -D wipを使用し、次にgit checkout -b wipを続けましたが、それはちょっとばかげているようです。

動機

は、私はしばしば '進行中の作業' のため、私のmaster枝と一緒にwip枝を持っています。時にはそのようなブランチの作業が「後ろに」残ってしまい、私がそれを再発見すると、もはやそれが欲しくないことが分かります。この再発見はブランチを使用して新しい作業セットを保存したいときによく起こります。私は単にmasterとの相違点を破棄したいので、新しい「作業中の作業」が一番上に収まります。違いを理解することは問題にはならない:上記の解決策は私のためにうまくいく。このユースケースに対処するためのより良いソリューションはありますか?

答えて

7

あなたが本当にその名前の前のブランチを吹き飛ばし、そしてあなただけ使用することができ、新しいものを作成したい場合は、次の名前に切り替えるようにgitの原因となります資本バージョンではなく、-bを使用して

git checkout -B wip master 

を最後の引数として指定された新しい開始点にリセットします。現在、希望の出発点にいる場合は、最後の引数(ここではmaster)を省略することができます。デフォルトはHEADです。

10

はあなたの支店で、このいずれかを試してみてください。

git reset --hard master 

これは、マスターするのはあなたの枝を同一にすべてはあなたが行われ、ステージング領域内のすべてのファイルを破棄した可能性がコミット削除します。

+0

このユースケースが登場すると、私は通常コミットされていない作業を進行中です。その時点で、 'wip'ブランチをチェックアウトすることはできません。なぜなら、'エラー:次のファイルへのあなたのローカル変更はチェックアウトによって上書きされます: 'です。もちろん、私は自分の仕事を 'master'にコミットし、' wip'をチェックアウトし、 'git reset --hard master'を実行し、' master'と 'reset -hard HEAD^'をチェックアウトすることができます。ブランチを作成して新しいブランチを作成します。 – Confusion

+0

あなたがワイプで作業している場合、なぜあなたはマスターになりますか? – Intrepidd

+1

これらの状況では、変更を保存するために 'git stash'を使用し、それらを復元するために' git stash pop'を使用してコミットする必要はありません。 – jszakmeister