別ブランチでコミット

簡単に

別のブランチでコミットしたかったけど,既にコミットしたくないブランチで変更してしまっているとき.
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ブランチでコミットしたいファイル→ fileA
  • anotherブランチでコミットしたいファイル→ fileB

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

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

  2. stash で fileB の状態を保存しておく
    git stash -u

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

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

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

  6. fileB を another ブランチとしてコミット.fileA の変更を another ブランチでも反映させるときは merge
    # git merge origin/master # 必要であれば
    git add fileB
    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 (1434d)