🤦♂️
【git】ブランチ切り替え時にファイルが消えるケース
ブランチ間の.gitignore
の差でスタッシュもされずにファイルが消えるケースがあったので紹介します。
再現
mainブランチにREADME.mdと.gitignore
があるとします。
.
├─.gitignore
└─README.md
新しくブランチを作り、README.mdを削除して.gitignore
に追加します。
.gitgnore
README.md
上記をコミットした後に、新しくREADME.mdを作ってからmainブランチに切り替えます。すると、README.mdがスタッシュもされずにmainブランチのREADME.mdに上書きされます。
どうやら、gitの管理対象外になったファイルがブランチの切り替え時に存在した場合、そのファイルに上書きされるようです。存在しない場合は、コミットとして認識されます。
雑なブランチ運用をしなければ遭遇しないと思いますが、ブランチ切り替え時にファイルが消えたら.gitignore
の差分を見てみると良いかもしれません。
復元できる方法or間違っている点があればコメントで教えてください。
Discussion