高度な Git
Amanda Crawford-Adamo
Software and Data Engineer
Git rebase コマンド:
git rebase <branch_name>

data-cleanup feature ブランチをチェックアウト。git checkout data-cleanup
main を data-cleanup にリベース。git rebase main
data-cleanup のコミットは main の最新コミットの後に再作成されるdata-cleanup コミットには新しいハッシュが付くNote: 競合があれば手動で解決する必要があります。

git rebase -i <commit_hash>
機能
注意!
main のような公開ブランチで rebase は使わない$$
編集前のdata-validation ブランチ履歴です。
$ git log --oneline data-validation
abc1234 Optimize validation performance
def5678 Fix validation bug
ghi9101 Add data validation function
xyz1234 New Main Branch Commit
vwx7890 Main Branch Commit
jkl2345 Initial commit
開いたエディタで、pick と fixup を使って履歴を編集します。
$ git rebase -i HEAD~3
pick ghi9101 Add data validation function
fixup def5678 Fix validation bug
fixup abc1234 Optimize validation performance
# Rebase xyz1234..abc1234 onto HEAD~3(xyz1234) (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# f, fixup <commit> = like "squash", but discard this commit's log message
...
Before
$ git log --oneline data-validation
abc1234 Optimize validation performance
def5678 Fix validation bug
ghi9101 Add data validation function
xyz1234 New Main Branch Commit
vwx7890 Main Branch Commit
jkl2345 Initial commit
After
$ git log --oneline data-validatoin
mno6789 Add data validation function
xyz1234 New Main Branch Commit
vwx7890 Main Branch Commit
jkl2345 Initial commit
以下のコミットが1つに統合されました

Merge
Rebase
Merge
完了した機能を統合し、開発の文脈を保持する用途
Rebase
feature ブランチを main に追随させる、またはマージ前に履歴を整理する用途
覚えておくこと
高度な Git