まず早送りを試す
mainがfeatureの祖先なら、マージは既存の先端へポインターを動かすだけです。分岐した例とは違い、二つの親を持つコミットは増えません。
Git & Version Control
例の履歴と操作を選び、実行せずに分岐の変化を確認します。
A~Dとプライム記号は教材のIDで、実際のGitハッシュではありません。
例と操作を選んでプレビューすると、ここに結果が出ます。
固定の教材図だけをブラウザー内で処理し、リポジトリには接続しません。
対象ブランチ: main · 元のブランチ: feature
Ctrl/Cmd + Enterで選択した操作をプレビューします。
操作を選んでプレビューしてください。
図は固定の一行ファイルだけを模擬し、実際のGitのマージ戦略を再現しません。
Gitシミュレーターでは、共通のAからmainとfeatureが分かれた小さな図を使います。コミット履歴を文字だけで追うと見落としやすい、親子関係とブランチの先端を先に確認できます。
早送りの例と同じ行を編集した例にも切り替えられます。表示するA~Dは教材の記号であり、手元のコミットIDでも実行可能なハッシュでもありません。
Gitシミュレーターはマージで残る元の線と、リベースで作られるC′・D′を分けて示します。Git可視化ツールで見る枝分かれに加え、cherry-pickが一つだけを移す点も確認できます。
競合例ではapp.jsの同じ行に異なる値が入っています。どのコミットで停止するかを説明できますが、実際のファイル内容を知らないまま競合を予測することはできません。
mainがfeatureの祖先なら、マージは既存の先端へポインターを動かすだけです。分岐した例とは違い、二つの親を持つコミットは増えません。
リベースはCとDを順に再適用し、featureをD′へ向けます。cherry-pickは選んだCまたはDだけをmainへコピーし、元のfeatureを残します。
場面や操作を変えると結果は直ちに期限切れとなり、コピーとダウンロードが無効になります。Ctrl/Cmd + Enterで再表示し、コマンド案の仮名を実際の参照先と照合します。
分岐した履歴では両方を親に持つコミットが増え、早送りではmainの先端だけが移ります。「マージなら必ず新しい節点」という誤解を図で避けられます。
リベースはfeatureの列を再作成し、cherry-pickは選択した一件だけを再適用します。プライム記号は新しいコミットを表すだけで、実際のSHAではありません。
同じ行の例はベース、現在側、取り込み側の値を表示します。実際のマージ戦略や改名検出は扱わず、競合ファイルを編集する機能もありません。
この例ではfeatureをmainの新しい先端へ重ね、CとDをC′とD′として再作成します。実際のmaster/mainの名前や共有状況は読み取れないため、実行前に対象と未コミット作業を確認してください。
cherry-pickは元のコミットを移動せず、変更を新しい親の上に記録します。その後に元の枝をマージすると、元とコピーの両方が履歴に見える場合があります。図は単一の摘み取りまでを扱います。
一件だけならcherry-pickのプレビューを選び、CまたはDを指定します。草稿のハッシュ欄は仮の文字列なので、実際のコミットIDに置き換え、適用先の作業ツリーを確認してください。
ホスティング側にはmerge、rebase、squashなどの統合方式があります。このページは最初の二つの履歴形状と単一cherry-pickだけを説明し、PRの設定やレビュー状態は確認しません。
revertは打ち消し用の新しいコミットを作る操作で、差分表示はその後の変更と比較基準にも左右されます。この教材にはrevertのシミュレーションがないため、実際のPR差分はホスティング側で確認してください。
端末の仕様と異なる結果ですか?