変更要約: 本文を拡充(図解を追加)
2.3ブランチ・統合・取り消し
ブランチは並行開発の要です。main を安定させたまま、feature ブランチで安全に変更を試せます。
■ 作成と切り替え
・git branch=ブランチの作成/一覧。
・git switch <branch>(従来は git checkout)=ブランチの切り替え。git switch -c <name> で作成と切替を同時に行えます。
■ 統合:merge と rebase(下図) ブランチの変更を取り込むには2つの方法があります。 ・merge=両者の履歴を保ったまま、合流点を示す「マージコミット」で統合する。経緯が残るのが特徴。 ・rebase=自分のコミットを対象ブランチの先端に並べ直し、履歴を直線的にする。きれいな履歴になる一方、共有済みのコミットを rebase すると履歴が食い違うため注意。 同じ箇所を別々に変更すると「マージコンフリクト」が起きます。その場合は該当箇所を手動で解決し、統合を完了させます。
■ 取り消し・一時退避・目印
・git revert <commit>=打ち消しコミットを「追加」するため、共有済みでも安全に取り消せる。
・git reset=履歴やステージを巻き戻す(--hard は変更を失うので注意)。
・git stash=未コミットの変更を一時退避し、後で戻せる。
・git cherry-pick <commit>=特定のコミットだけを今のブランチに取り込む。
・git tag=リリース地点などに目印を付ける。
注意:共有ブランチへの force push(強制プッシュ)は履歴を上書きし、他者の作業を失わせる危険があるため原則避けます。
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. 公開(push)済みのコミットを安全に打ち消すには?
Q2. merge と rebase の違いとして正しいものはどれですか?

