Closed5

今の作業を前のコミットに含めたい時のメモ

Amane OtsukaAmane Otsuka

状況

今の作業を数コミット前の差分に含めたい
git rebaseすればいいけど、

error: cannot rebase: You have unstaged changes.
error: Please commit or stash them.

と言われる。rebaseする時点では差分を無くさないといけない。でも、今の内容は消したくない。

Amane OtsukaAmane Otsuka

patchを保存する

git diff > ~/Documents/diff.patch

でドキュメントフォルダにdiff.patchというファイルで差分を保存。
(diff.patchでなくてもhoge.patchでもなんでもいい)

これでgit checkout .して差分を無くしても、書いた内容を後から適用できる

Amane OtsukaAmane Otsuka

含めたいコミットへ移動

git reflogで確認したいコミットのHEAD@{この数字=n}を確認したら
git rebase -i HEAD~nで移動

Amane OtsukaAmane Otsuka

ドキュメントフォルダに保存しておいた差分を適用

git apply ~/Documents/diff.patch

checkout .前に残しておいた差分を適用

Amane OtsukaAmane Otsuka

rebase終了

git add .してgit rebase --continueで、修正を保存する。

このスクラップは2023/09/19にクローズされました