Git Rebase は
既存のコミットに対して行い―
今日から始まるブランチに
配置することができるものです
♪ (ジャズ風のテーマ音楽) ♪
ブランチを作成するのは
難しい決断です
今日からにすべきか
後で開始するようにすべきか?
重要な修正がいくつか
今まさに起こっているかもしれません
明日まで待った方がいいのでしょうか
Gitなら そんな難しい決断は不要です
好きなときにブランチを開始して
実行するつもりの変更を
残しておきましょう
特定の機能や
バグや目的の修正に
特化したものにします
マスターブランチで起こりつつある
重要な修正に組み込むため―
この変更を履歴上では
後から開始したい場合は
どうすればいいでしょう?
問題ありません
Rebase が助けてくれます
一般的な使用法ではRebase によって
ブランチを履歴の後の方に
再配置できます
つまりあなたのブランチに
分岐させておいた変更を全て
まるでマスターブランチで
現在起こっている作業の
あとから起こったように見せるのです
行うことは同じですが
マスターブランチから
今後作られるブランチへと
逆マージするよりも
履歴がすっきりします
後のブランチで表示される
コンテンツは同じですが
マージが後のブランチに行われるといった
複雑さや履歴上の記録が
残りません
rebase コマンドによって
ブランチにある全てのコミットが
変更されることを覚えておいて下さい
全ての作業を保存しますが
場所や他のコミットに対する関係性は
全て変更されます
これは基本的に
他の人が作業していない
自分だけのブランチに行う作業です
関係性や
各コミットの識別名における変更により
他の人の作業と一致させるのは
難しいのです
あなた が作業している
ブランチについて話していきますが
それらの制約を考えると
使用法はとてもシンプルです
Git checkoutは
後に作られるブランチに行い
git rebase はソースブランチ
大体マスターブランチに行います
そうすると後に作られるブランチに
行われるはずのコミットを
すべて反復して
機械的に書き直されたかのように
マスターブランチの
最新の時点から再生します
このプロセスが完了したら
個々のコミットがすべて
行われたことを確認して
rebase が完了したことを
知らせてくれます
そしてあなたは指示を実行する前と
同じような状態に見える
コマンドプロンプトに戻ります
しかし これらの履歴上のコミットは
今や新しい識別名を持っていることを
念頭に置いておきましょう
このパターンを使うリクエストは
オープンソースプロジェクトにおいて
最もよくみられることがわかるでしょう
なぜなら コードベースを
将来読む人たちのために
最適化しておこうと考えるためです
プロジェクトに将来関わる人たちにとっては
1本のまっすぐな履歴が
一番読みやすいのです
このため貢献する人たちの方に
履歴をすっきりさせるよう
負荷をかけているのです
これは努力ではありますが
このプロジェクトに
将来関わるすべての 協力者が
恩恵を受けます
継続的に実行されるアプリケーション―
例えば ウェブサービスやアプリは―
一般的にrebase ではなく
マージに最適化されています
これらは小さく的の絞られた変更を
マスターブランチに
できるだけ素早く実行できるような
メカニズムが必要だからです
それによって行われるべき変更が
全てなされなければ
別のブランチを使って
またマージするのです
Rebase は履歴を明瞭なものに
最適化する力強い機能です
あなたのプロジェクトやチームの
必要としている物を確認しましょう
今後のブランチに
素早く実行する必要があれば
すぐマージすればいいでしょう
明確な履歴が必要なら
Rebase を使えばいいのです
Git & GitHub Foundationsの
Rebase編を
ご覧いただきありがとうございます
ここでチャンネルの購読を忘れずに
質問やコメントは下からどうぞ
ブランチの作り方などの
関連動画もご覧下さい