#author("2019-01-01T07:47:05+09:00","default:Miyashita","Miyashita") #author("2022-04-04T14:02:05+09:00","default:Miyashita","Miyashita") *別ブランチでコミット [#u56921e0] **簡単に [#b8f97d8a] 別のブランチでコミットしたかったけど,既にコミットしたくないブランチで変更してしまっているとき.~ masterブランチにいるけど,まだmasterには入れずにdevブランチで今の内容をコミットしたいとき…などは下記の操作をする. +stashで現在の内容を保存 master ブランチにいるけど,まだ master には入れずに dev ブランチで今の内容をコミットしたいとき…などは下記の操作をする. +stash で現在の内容を保存 #codeprettify{{ git stash # -u (--include-untracked) をつけるとバージョン管理適用外ファイルも含める }} ~ +checkoutでブランチの移動 +checkout でブランチの移動 #codeprettify{{ git checkout dev # 新規作成する場合は -b をつける git checkout dev # 新たにブランチを作成する場合は -b をつける }} ~ +stashしたものを移動したブランチで適用 +stash したものを移動したブランチで適用 #codeprettify{{ git stash pop # stash は適用後に削除 }} または #codeprettify{{ git stash drop # stash が適用後も残る }} ~ +addしてcommit +add して commit #codeprettify{{ git add . git commit }} **ブランチごとにそれぞれ別ファイルの変更をコミット [#o18da798] 【変更内容が未コミット】で~ 変更済みファイルが【複数】あり~ それぞれ【別のブランチで】コミットしたい時の話. -masterブランチでコミットしたいファイル→A -anotherブランチでコミットしたいファイル→B~ -masterブランチでコミットしたいファイル→ fileA -anotherブランチでコミットしたいファイル→ fileB~ という前提で,masterブランチにいるとする. +Aをmasterブランチでコミット.(push) +fileA を master ブランチでコミット.(push) #codeprettify{{ git add A git add fileA git commit git push origin }} ~ +stashでファイルBの状態を保存しておく +stash で fileB の状態を保存しておく #codeprettify{{ git stash -u }} ~ +checkoutでanotherブランチに切り替え +checkout で another ブランチに切り替え #codeprettify{{ git checkout another }} ~ +logを見てstash状態のコミットのハッシュを確認する (git stash applyを使いたいので) +log を見て stash 状態のコミットのハッシュを確認する (git stash applyを使いたいので) #codeprettify{{ git log -n 5 --all --decorate --oneline }} ~ +ハッシュ値を入力して前の状態のファイルBを取り戻す~ 上記のpopやdropの代わりにapplyでも良い. +ハッシュ値を入力して前の状態の fileB を取り戻す~ 上記の pop や drop の代わりに apply でも良い. #codeprettify{{ git stash apply --index 64359e3 }} ~ +Bをanotherブランチとしてコミット.Aの変更をanotherブランチでも反映させるときはmerge +fileB を another ブランチとしてコミット.fileA の変更を another ブランチでも反映させるときは merge #codeprettify{{ # git merge origin/master # 必要であれば git add B git add fileB git commit }} ~