経験知ロゴ

SorceTreeで現在の差号を残しつつブランチを変える方法

※本ページはプロモーションが含まれています

スタッシュ

gitを使って開発していると、「現在編集中の機能はイマイチだけど残しておきたい」とうときがあります。

その時は、stashを使い、現在の変更を一時的に対比させ、新しいブランチを作り、そこにコミットすればOKです。

gitコマンドでの手順

まずはgitコマンドでの手順。

既にコミットしている場合は、「git reset –soft HEAD^」を使い、変更は残しつつ直前のコミットに戻る。

windowsのコマンドプロンプトで使う場合は、「more?」と聞かれるので、「HEAD^」部分を囲う。

git reset --soft "HEAD^"

ここからが共通の操作。

stashを使って現在の変更を一時退避。(-uをつけると、untrackファイルも含めてstashしてくれる)

git stash -u

別のブランチを作成。(既に対比させたいブランチがあるならここは飛ばしてOK)

git branch <切り替えたいブランチ名>

保存しておきたいブランチへチェックアウト。

git checkout <切り替えたいブランチ名>

スタッシュを適用し、スタッシュを削除。

git stash pop

これで切り替えたブランチに移動した状態になり、変更したファイルがstashから戻ってきているのでコミット。

これで別ブランチに作業内容を移動させコミットできました。

元のブランチに戻って作業するなら、作業ブランチへチェックアウトすればOK。

SorceTreeでの操作

上記手順をSorceTreeで行います。

既にコミットしてある場合は、戻したいコミットを右クリックして「現在のブランチをこのコミットまでリセット」をクリック。
現在のブランチをこのコミットまでリセット

「使うモード」を「Soft」に変更。
使うモードをsoftに

「OK」をクリック。
OKをクリック。

これでコミットが戻り、コミットされていない変更がある状態になりました。
コミットが戻る

画面上部の「スタッシュ」をクリック。
スタッシュ

「OK」をクリック。
OKをクリック

コミットされていない変更が消えます(別の領域にスタッシュされた)
コミットされていない変更が消えた

別に保存しておきたいブランチがない場合はブランチを作成する。「ブランチ」をクリック。
ブランチを作成

新規ブランチ名を入力し、「新規ブランチを作成してチェックアウト」にチェックが入っていることを確認し、「ブランチを作成」をクリック。
ブランチ作成

これでブランチが作成され、新規作成したブランチに移動した。
ブランチに移動

左メニューの「スタッシュ」をクリックし、適用したいスタッシュを右クリックして「~を適用」をクリック。
スタッシュ

適用後、スタッシュを削除したい場合は「適用した変更を削除」にチェックを入れ「OK」をクリック。操作に不安がある場合は「適用した変更を削除」しないで、確実に要らなくなったときに削除するのが良い。
OKをクリック

これで、新しいブランチに移動した状態で、先程変更した内容がもとに戻った。
変更が戻った

後は、新しいブランチでコミットすればOK。

元のブランチに戻って作業する場合は元のブランチにチェックアウトするのを忘れずに。

おわりに

実装途中に、やっぱこれはないわ~というシーンは個人的に結構あります。

最初からブランチを分けていればこんな面倒なことにならないので、運用方法を見直す必要がありますね。

役に立ったらこの記事のシェアをお願いします

ブログのフォロー・RSS購読は下記ボタンから