別ブランチでコミット

簡単に

別のブランチでコミットしたかったけど,既にコミットしたくないブランチで変更してしまっているとき.
masterブランチにいるけど,まだmasterには入れずにdevブランチで今の内容をコミットしたいとき…などは下記の操作をする.

  1. stashで現在の内容を保存
    git stash  # -u (--include-untracked) をつけるとバージョン管理適用外ファイルも含める

  2. checkoutでブランチの移動
    git checkout dev # 新規作成する場合は -b をつける

  3. stashしたものを移動したブランチで適用
    git stash pop # stash は適用後に削除
    または
    git stash drop # stash が適用後も残る

  4. addしてcommit
    git add .
    git commit

ブランチごとにそれぞれ別ファイルの変更をコミット

【変更内容が未コミット】で
変更済みファイルが【複数】あり
それぞれ【別のブランチで】コミットしたい時の話.

  • masterブランチでコミットしたいファイル→A
  • anotherブランチでコミットしたいファイル→B

という前提で,masterブランチにいるとする.

  1. Aをmasterブランチでコミット.(push)
    git add A
    git commit 
    git push origin

  2. stashでファイルBの状態を保存しておく
    git stash -u

  3. checkoutでanotherブランチに切り替え
    git checkout another

  4. logを見てstash状態のコミットのハッシュを確認する (git stash applyを使いたいので)
    git log -n 5 --all --decorate  --oneline

  5. ハッシュ値を入力して前の状態のファイルBを取り戻す
    上記のpopやdropの代わりにapplyでも良い.
    git stash apply --index 64359e3

  6. Bをanotherブランチとしてコミット.Aの変更をanotherブランチでも反映させるときはmerge
    # git merge origin/master # 必要であれば
    git add B
    git commit


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2018-12-31 (Mon) 22:47:05 (76d)