1 00:00:00,286 --> 00:00:03,221 Git Rebase は 既存のコミットに対して行い― 2 00:00:03,221 --> 00:00:06,540 今日から始まるブランチに 配置することができるものです 3 00:00:06,726 --> 00:00:08,937 GitHub と Git 基礎 4 00:00:12,355 --> 00:00:14,501 ブランチを作成するのは 難しい決断です 5 00:00:14,715 --> 00:00:17,133 今日からにすべきか 後で開始するようにすべきか? 6 00:00:17,475 --> 00:00:20,618 重要な修正がいくつか 今まさに起こっているかもしれません 7 00:00:20,771 --> 00:00:22,881 明日まで待った方がいいのでしょうか 8 00:00:23,026 --> 00:00:26,101 Gitなら そんな難しい決断は不要です 9 00:00:26,489 --> 00:00:28,140 好きなときにブランチを開始して 10 00:00:28,161 --> 00:00:31,389 実行するつもりの変更を 残しておきましょう 11 00:00:31,507 --> 00:00:33,353 特定の機能や 12 00:00:33,750 --> 00:00:36,066 バグや目的の修正に 特化したものにします 13 00:00:36,977 --> 00:00:38,802 基本的な使用法 14 00:00:38,982 --> 00:00:40,699 masterブランチで起こりつつある 15 00:00:40,699 --> 00:00:42,383 重要な修正に組み込むため― 16 00:00:42,383 --> 00:00:44,647 この変更を履歴上では 17 00:00:44,647 --> 00:00:46,432 後から開始したい場合は どうすればいいでしょう? 18 00:00:46,860 --> 00:00:49,686 問題ありません Rebase が助けてくれます 19 00:00:50,038 --> 00:00:52,775 一般的な使用法ではRebase によって 20 00:00:52,775 --> 00:00:57,868 ブランチを履歴の後の方に 再配置できます 21 00:00:58,362 --> 00:01:02,899 つまりあなたのブランチに 分岐させておいた変更を全て 22 00:01:03,124 --> 00:01:05,707 まるでmasterブランチで 現在起こっている作業の 23 00:01:05,935 --> 00:01:08,362 あとから起こったように見せるのです 24 00:01:09,019 --> 00:01:11,456 行うことは同じですが 25 00:01:11,456 --> 00:01:14,580 masterブランチから 今後作られるブランチへと 26 00:01:14,580 --> 00:01:17,290 逆マージするよりも 履歴がすっきりします 27 00:01:17,707 --> 00:01:20,485 後のブランチで表示される コンテンツは同じですが 28 00:01:20,720 --> 00:01:23,503 マージが後のブランチに行われるといった 29 00:01:23,757 --> 00:01:26,546 複雑さや履歴上の記録が 残りません 30 00:01:27,496 --> 00:01:29,335 git checkout と git rebase 31 00:01:29,875 --> 00:01:32,124 rebase コマンドによって 32 00:01:32,274 --> 00:01:35,160 ブランチにある全てのコミットが 変更されることを覚えておいて下さい 33 00:01:35,550 --> 00:01:37,801 全ての作業を保存しますが 34 00:01:38,057 --> 00:01:41,201 場所や他のコミットに対する関係性は 35 00:01:41,201 --> 00:01:42,583 全て変更されます 36 00:01:43,075 --> 00:01:46,485 これは基本的に 他の人が作業していない 37 00:01:46,485 --> 00:01:48,643 自分だけのブランチに行う作業です 38 00:01:48,970 --> 00:01:50,243 関係性や 39 00:01:50,243 --> 00:01:52,322 各コミットの識別名における変更により 40 00:01:52,322 --> 00:01:55,380 他の人の作業と一致させるのは難しいのです 41 00:01:55,573 --> 00:02:00,041 あなた が作業している ブランチについて話していきますが 42 00:02:00,492 --> 00:02:04,058 それらの制約を考えると 使用法はとてもシンプルです 43 00:02:04,471 --> 00:02:07,168 Git checkoutは 後に作られるブランチに行い 44 00:02:07,647 --> 00:02:12,443 git rebase はソースブランチ― 一般的にmasterブランチに行います 45 00:02:13,231 --> 00:02:15,402 そうすると後に作られるブランチに 46 00:02:15,402 --> 00:02:17,983 行われるはずのコミットを すべて反復して 47 00:02:17,983 --> 00:02:22,797 機械的に書き直されたかのように masterブランチの 48 00:02:23,098 --> 00:02:27,590 最新の時点から再生します 49 00:02:27,889 --> 00:02:29,561 このプロセスが完了したら 50 00:02:29,766 --> 00:02:32,862 個々のコミットがすべて 行われたことを確認して 51 00:02:33,390 --> 00:02:36,310 rebase が完了したことを 知らせてくれます 52 00:02:36,310 --> 00:02:37,898 そしてあなたは指示を実行する前と 53 00:02:37,898 --> 00:02:40,174 同じような状態に見える 54 00:02:40,174 --> 00:02:42,330 コマンドプロンプトに戻ります 55 00:02:42,595 --> 00:02:47,146 しかし これらの履歴上のコミットは 今や新しい識別名を持っていることを 56 00:02:47,443 --> 00:02:48,595 念頭に置いておきましょう 57 00:02:48,714 --> 00:02:50,900 このパターンを使うリクエストは 58 00:02:50,900 --> 00:02:53,128 オープンソースプロジェクトにおいて 最もよくみられることがわかるでしょう 59 00:02:53,659 --> 00:02:55,936 なぜなら コードベースを 将来読む人たちのために 60 00:02:55,936 --> 00:02:57,833 最適化しておこうと考えるためです 61 00:02:58,137 --> 00:03:01,899 プロジェクトに将来関わる人たちにとっては 1本のまっすぐな履歴が 62 00:03:02,082 --> 00:03:04,503 一番読みやすいのです 63 00:03:04,750 --> 00:03:06,933 このため貢献する人たちの方に 64 00:03:06,933 --> 00:03:08,595 履歴をすっきりさせるよう 負荷をかけているのです 65 00:03:08,997 --> 00:03:11,154 これは努力ではありますが このプロジェクトに 66 00:03:11,154 --> 00:03:13,748 将来関わるすべての 協力者が 恩恵を受けます 67 00:03:14,712 --> 00:03:16,512 履歴 vs 機能 68 00:03:16,802 --> 00:03:18,936 継続的に実行されるアプリケーション― 69 00:03:18,936 --> 00:03:21,391 例えば ウェブサービスやアプリは 70 00:03:21,915 --> 00:03:25,881 一般的にrebase ではなく マージに最適化されています 71 00:03:26,447 --> 00:03:29,244 これらは小さく的の絞られた変更を masterブランチに 72 00:03:29,478 --> 00:03:33,386 できるだけ素早く実行できるような メカニズムが必要だからです 73 00:03:33,884 --> 00:03:36,087 それによって行われるべき変更が 全てなされなければ 74 00:03:36,482 --> 00:03:39,857 別のブランチを使って またマージするのです 75 00:03:40,260 --> 00:03:41,897 Rebase は履歴を明瞭なものに 76 00:03:41,897 --> 00:03:44,052 最適化する力強い機能です 77 00:03:44,370 --> 00:03:47,228 あなたのプロジェクトやチームの 必要としている物を確認しましょう 78 00:03:47,716 --> 00:03:50,321 今後のブランチに 素早く実行する必要があれば 79 00:03:50,321 --> 00:03:51,641 すぐマージすればいいでしょう 80 00:03:51,907 --> 00:03:54,996 明確な履歴が必要なら Rebase を使えばいいのです 81 00:03:56,979 --> 00:03:58,978 Git & GitHub Foundationsの Rebase編を 82 00:03:58,978 --> 00:04:00,429 ご覧いただきありがとうございます 83 00:04:00,563 --> 00:04:02,592 ここでチャンネルの購読を忘れずに 84 00:04:02,592 --> 00:04:05,365 質問やコメントは下からどうぞ 85 00:04:05,365 --> 00:04:08,695 ブランチの作り方などの 関連動画もご覧下さい