😶‍🌫️

【Git-flow】masterブランチのままファイルを変更してしまった場合の対処法

2024/05/16に公開

Git-flowでは、基本的にmasterブランチでは開発を行いません。

しかし、ブランチを切り替えるのを忘れてmasterブランチのまま作業してしまうことがあります。正しいブランチに切り替わっていないことに途中で気づいたとき、どう対処すればいいのでしょうか。その対処法について記します。

解決方法

  1. 変更を破棄する (Discard all changes)
  2. 変更を一時退避して正しいブランチに適用する(git stash)

解決方法は上記の2つがあります。修正量が微々たる場合は1の方法でいいですが、変更量が多い場合は2の方法がおすすめです。以下では、2の方法について記します。

変更を一時退避して正しいブランチに適用する(git stash)

本来 working_branchというブランチのはずが、masterブランチでファイル変更してしまったとします。

git stash を使用して変更を退避させます。

$ git stash
Saved working directory and index state WIP on master: [コミット情報]`

これで変更を退避させました。

git statusで状態を確認してみます。

$ git status
On branch master
nothing to commit, working tree clean

masterブランチでの変更がなくなりました。

本来の作業ブランチである working_branch に切り替えて反映させます。

反映させるコマンドは git stash apply です。

$ git checkout working_branch
Switched to branch 'working_branch'
$ git stash apply
On branch working_branch
Changes not staged for commit:
        modified:   sample.txt

これで変更を反映させることができました。

関連記事

https://zenn.dev/harupyade/articles/cbb5c70cd705be

https://qiita.com/kento_sakuragi/items/51bc6940c72a43d87966

Discussion