git merge, rebase コマンド
未整理..
概要
考え方的にはこういう理解
- merge → 分岐している間の履歴を辿れるように本線に合流
- squash → 分岐は無かったことにして本線に1回のコミットとして合流
- rebase → 分岐後の履歴を、本線の後ろにくっつける(その前に本線の変更が手元に取り込まれる)
git merge
bash
git switch main
git pull
git merge feature/my-work
bash
git switch main
git merge --ff-only feature/my-work
git merge --squash
bash
git switch main
git merge --squash feature/my-work
git commit -m "Add feature my-work"
git rebase
bash
git switch feature/my-work
git fetch origin
git rebase origin/main
切替前に手元の変更を退避
switch しようとしてコンフリクトして失敗。そんなときは git stash で変更を退避。
| コマンド | 意味 |
|---|---|
| git stash | 手元の変更を退避 |
| git stash pop | 退避した変更を手元に適用 (適用されたら退避分は消える) |
もうちょっと試してから追記する
- 複数回 stash したら スタックに積まれる(紛らわしいので push と書けない)。つまり pop 複数回で戻す
- git stash list
- git stash apply stash@2 : 消さずに適用
- git stash pop stash@2 : 適用して(成功したら)削除
以下広告