はじめに
開発ブランチで作業中のコードをgit stash
で一時退避し、更新されたmasterブランチをrebaseしたところ、なにやらよろしくないものがpushされていたらしく、IDEでロードできないプロジェクトになってしまった。
そこで、該当プロジェクトは捨て、別にcloneしたプロジェクトにstashで待避していた内容を反映したいと思ったとき、パッチを作成して反映するという手段でうまくいった。
方法
# IDEでロードできないプロジェクトを移動
mv -f foo error-foo
cd error-foo
# 待避先がstash@{0}だとしたら、この待避内容をパッチ化する
git stash show stash@{0} -p > /path/to/stashed.patch
# ロードできない問題が解決されたプロジェクトをclone
cd ..
git clone https://www.example.com/foo.git foo
cd foo
# --dry-runで試行してからパッチ反映
patch --dry-run -p1 < /path/to/stashed.patch
patch -p1 < /path/to/stashed.patch
IDEでfooをロードし直す。
参考文献
助かりました!