{
"$type": "site.standard.document",
"canonicalUrl": "https://blog.nove-b.dev//posts/stash-changes-before-git-merge",
"path": "/posts/stash-changes-before-git-merge",
"publishedAt": "2023-01-01T00:00:00.000Z",
"site": "at://did:plc:2atly2y5kfyjcj5zap6pv4wd/site.standard.publication/3mmxeqr2tcb2k",
"tags": [
"git",
"merge",
"stash"
],
"textContent": "状況\n\n修正中に、どうしても取り込みたいブランチがあったけど、まだCommitはしたくない。\n\n対応方法\n\nstash→merge→apply\n\ngit stash save で一時的に保存する\n\n上記だと何ためにstashするのかわからなくなるのでコメントを付けることが推奨される。\n\n実行すると、変更履歴から消えるが、新規作成したファイルは削除されないので、変更履歴に残り続ける。 \nなお、残り続けているファイルは退避できていないということなので、安易に消さないようにした方がいい。\n\n※stashは未追跡のファイルを退避してくれない。未追跡のファイルも含めたいときは-uオプションを付ける必要がある。\n\ngit stash list で保存できているか確認する\n\n上記のように表示できていれば問題ない。\n\n作業を行う\n\nここで本来やりたかったことに着手する。 \n今回であれば取り込みたいブランチをマージする。\n\ngit stash apply で保存データを復旧する\n\n名前を省略すると、一番最新のstashを復旧されるので、最新のものを復旧する際は名前なしで問題ない。\n\n復旧できたことが確認できればOK。\n\ngit stash drop で保存データを削除する\n\nわからなくならないように適宜、削除する。",
"title": "Gitブランチで作業中に他ブランチをmergeしたくなったけど、現在の作業をまだmergeしたくない時の対処方法はstashする"
}