masterにあればいいのだがないので、なんとかして取り出したい。
さらに取り出したい内容は一つのコミットに色々な作業内容を含めたままプッシュしてしまっているときた。
今までだと、諦めて作業を進めていたが、Gitは便利なもので他のコミットの内容をコピーできたり、コミット内容を後から分割できることを知ったので、そのやり方をメモしていく。
参考サイト
gitで他ブランチの特定のコミットを取り込む方法
gitで1つのコミットを複数のコミットに分割する
コミットから取り出したい内容を分離
まず、取り出したい作業内容をコミットから分離する。
取り出したいコミットをする前の状態に戻る。
git reset <分離した作業内容があるコミットの一つ前>
あとは適時作業内容を分割してコミットしていき、取り出したい作業分をまとめたコミットを作成する。git rebaseを使った方法もある。上のやり方は直前のコミット内容を分離したい時には便利だが、もっと昔のものとなると大変なので、そのときはgit rebaseを使用する。
Gitで数個前のcommitを遡って分割する
git cherry-pick
次にgit logを使って取り出したいコミットのIDをメモしておく。ここまで来たら、コミットのコピーを使いたいブランチに戻り、git cherry-pickを使う。
git cherry-pick <commit-id>
これで目的は達成できた。
0 件のコメント:
コメントを投稿