🤸♂️
【GitHub】作業途中に別のブランチを切りたい
ひさしぶりにZennを書いています!
最近Githubを使うことが多いので、忘れないようにメモしておきます。
作業途中に他の優先する作業が入ってきた!
コードの編集中に、別の実装を頼まれました。
まだpushしたくないし、どうしよう!作業中の変更(modified)が残っていると、ブランチを移動できません!
そんなときに一時保存して、あとから取り出せる便利なコマンドがgit stash
です。
一時保存コマンド
作業を一時的にgit stash
で他の場所に退避させておきます。
git stash
これで作業中の変更は一時保存され、ブランチ移動ができるようになります。
【新しいブランチを作る手順】
- master ブランチに移動
- 最新の状態を取得(pull)
- 新しいブランチを作成
git checkout master
git pull origin master
git checkout -b new/Sagyou
これでnew/Sagyou
ブランチで新しい作業を開始できます。
一時保存しておいた内容を戻したいとき
作業途中の変更をgit stash
で退避したあと、元の作業に戻りたい場合は以下のように進めます。
【ケース①】new/Sagyouブランチの作業が完了した(push済み)
- 元のブランチに移動(作業中の変更がなければ移動OK)
- スタッシュの一覧を確認
- 必要なスタッシュを適用して作業を再開
git switch 元のブランチ名
git stash list
git stash apply stash@{番号}
【ケース②】new/Sagyouブランチの作業も途中で、元の作業を再開したい
まだnew/Sagyouブランチをpushしていない=modifiedファイルがいるので、ブランチ移動はできません。
1.new/Sagyouブランチの作業もスタッシュして一時保存
1.元のブランチに戻る
1.スタッシュを適用して作業再開
git stash # 今の作業を一時保存
git switch 元のブランチ名
git stash list
git stash apply stash@{番号}
まとめ
ブランチの移動は、modifiedファイル(編集済みファイル)があるとできません!
私も最初はうまく切り替えられず困っていましたが、git stash を覚えたことでスムーズに作業を切り替えられるようになりました。
stashを使いこなして、どんどんブランチを切って作業を進めます!!
Discussion