はじめに
Gitでバージョン管理するときのRebaseの使い方についての備忘です。
開発コミットを繋げ直す
複数人で開発していると、開発コミットに対して他の人が自身の開発したソースをマージしていきます。
そうすると、自分が開発しているソースは現在の親ブランチとは状態が異なってきます。
この時にRebaseします。
手順は下記の通りです。
# 現在のブランチを確認する
git branch
# test1というブランチにいることを確認する
# 開発ブランチ(develop)に切り替える
git switch develop
# 現在の最新のソースをPullしてくる
git pull origin develop
# test1に切り替える
git switch test1
# Rebaseする
git rebase develop
# Rebase成功した場合は終了
# 競合した場合
# 競合したファイルを確認する
git status
# 競合したファイルの修正
vim file_name
# 競合したファイル全て修正完了したらaddする
git add file_name
# Rebaseを続行する
git rebase --continue
コミットをまとめる
リモートリポジトリに対してPushする前に、ローカルのコミットを後で見て分かりやすい単位にまとめておきたい。
手順は下記の通り。
# 現状のログを確認する
git log --oneline
# コミットをまとめる
# 下記4つ分のコミットをまとめる際のコマンドの例
git rebase -i HEAD~4
Rebaseすると下記が出力される
pick xxxxx commit message
pick xxxxx commit message
pick xxxxx commit message
pick xxxxx commit message
コミットをまとめる場合
2, 3番目のコミットを一番上のコミットにまとめる場合pick
をs
に変更して保存する
pick xxxxx commit message
s xxxxx commit message
s xxxxx commit message
pick xxxxx commit message
コミットメッセージを変更する場合
4番目のコミットのコミットメッセージを変更する場合はpick
をr
に変更して保存する。
保存すると、コミットメッセージ変更画面に遷移するため、そこで変更したいメッセージに編集する
pick xxxxx commit message
pick xxxxx commit message
pick xxxxx commit message
r xxxxx commit message
まとめ
以上Rebaseについての備忘です。
ご参考までに