0:00:00.286,0:00:03.221 Git Rebase は[br]既存のコミットに対して行い― 0:00:03.221,0:00:06.540 今日から始まるブランチに[br]配置することができるものです 0:00:06.726,0:00:08.937 GitHub と Git 基礎 0:00:12.355,0:00:14.501 ブランチを作成するのは[br]難しい決断です 0:00:14.715,0:00:17.133 今日からにすべきか[br]後で開始するようにすべきか? 0:00:17.475,0:00:20.618 重要な修正がいくつか[br]今まさに起こっているかもしれません 0:00:20.771,0:00:22.881 明日まで待った方がいいのでしょうか 0:00:23.026,0:00:26.101 Gitなら そんな難しい決断は不要です 0:00:26.489,0:00:28.140 好きなときにブランチを開始して 0:00:28.161,0:00:31.389 実行するつもりの変更を[br]残しておきましょう 0:00:31.507,0:00:33.353 特定の機能や 0:00:33.750,0:00:36.066 バグや目的の修正に[br]特化したものにします 0:00:36.977,0:00:38.802 基本的な使用法 0:00:38.982,0:00:40.699 masterブランチで起こりつつある 0:00:40.699,0:00:42.383 重要な修正に組み込むため― 0:00:42.383,0:00:44.647 この変更を履歴上では 0:00:44.647,0:00:46.432 後から開始したい場合は[br]どうすればいいでしょう? 0:00:46.860,0:00:49.686 問題ありません[br]Rebase が助けてくれます 0:00:50.038,0:00:52.775 一般的な使用法ではRebase によって 0:00:52.775,0:00:57.868 ブランチを履歴の後の方に[br]再配置できます 0:00:58.362,0:01:02.899 つまりあなたのブランチに[br]分岐させておいた変更を全て 0:01:03.124,0:01:05.707 まるでmasterブランチで[br]現在起こっている作業の 0:01:05.935,0:01:08.362 あとから起こったように見せるのです 0:01:09.019,0:01:11.456 行うことは同じですが 0:01:11.456,0:01:14.580 masterブランチから[br]今後作られるブランチへと 0:01:14.580,0:01:17.290 逆マージするよりも[br]履歴がすっきりします 0:01:17.707,0:01:20.485 後のブランチで表示される[br]コンテンツは同じですが 0:01:20.720,0:01:23.503 マージが後のブランチに行われるといった 0:01:23.757,0:01:26.546 複雑さや履歴上の記録が[br]残りません 0:01:27.496,0:01:29.335 git checkout と git rebase 0:01:29.875,0:01:32.124 rebase コマンドによって 0:01:32.274,0:01:35.160 ブランチにある全てのコミットが[br]変更されることを覚えておいて下さい 0:01:35.550,0:01:37.801 全ての作業を保存しますが 0:01:38.057,0:01:41.201 場所や他のコミットに対する関係性は 0:01:41.201,0:01:42.583 全て変更されます 0:01:43.075,0:01:46.485 これは基本的に[br]他の人が作業していない 0:01:46.485,0:01:48.643 自分だけのブランチに行う作業です 0:01:48.970,0:01:50.243 関係性や 0:01:50.243,0:01:52.322 各コミットの識別名における変更により 0:01:52.322,0:01:55.380 他の人の作業と一致させるのは難しいのです 0:01:55.573,0:02:00.041 あなた が作業している[br]ブランチについて話していきますが 0:02:00.492,0:02:04.058 それらの制約を考えると[br]使用法はとてもシンプルです 0:02:04.471,0:02:07.168 Git checkoutは[br]後に作られるブランチに行い 0:02:07.647,0:02:12.443 git rebase はソースブランチ―[br]一般的にmasterブランチに行います 0:02:13.231,0:02:15.402 そうすると後に作られるブランチに 0:02:15.402,0:02:17.983 行われるはずのコミットを[br]すべて反復して 0:02:17.983,0:02:22.797 機械的に書き直されたかのように[br]masterブランチの 0:02:23.098,0:02:27.590 最新の時点から再生します 0:02:27.889,0:02:29.561 このプロセスが完了したら 0:02:29.766,0:02:32.862 個々のコミットがすべて[br]行われたことを確認して 0:02:33.390,0:02:36.310 rebase が完了したことを[br]知らせてくれます 0:02:36.310,0:02:37.898 そしてあなたは指示を実行する前と 0:02:37.898,0:02:40.174 同じような状態に見える 0:02:40.174,0:02:42.330 コマンドプロンプトに戻ります 0:02:42.595,0:02:47.146 しかし これらの履歴上のコミットは[br]今や新しい識別名を持っていることを 0:02:47.443,0:02:48.595 念頭に置いておきましょう 0:02:48.714,0:02:50.900 このパターンを使うリクエストは 0:02:50.900,0:02:53.128 オープンソースプロジェクトにおいて[br]最もよくみられることがわかるでしょう 0:02:53.659,0:02:55.936 なぜなら コードベースを[br]将来読む人たちのために 0:02:55.936,0:02:57.833 最適化しておこうと考えるためです 0:02:58.137,0:03:01.899 プロジェクトに将来関わる人たちにとっては[br]1本のまっすぐな履歴が 0:03:02.082,0:03:04.503 一番読みやすいのです 0:03:04.750,0:03:06.933 このため貢献する人たちの方に 0:03:06.933,0:03:08.595 履歴をすっきりさせるよう[br]負荷をかけているのです 0:03:08.997,0:03:11.154 これは努力ではありますが[br]このプロジェクトに 0:03:11.154,0:03:13.748 将来関わるすべての 協力者が[br]恩恵を受けます 0:03:14.712,0:03:16.512 履歴 vs 機能 0:03:16.802,0:03:18.936 継続的に実行されるアプリケーション― 0:03:18.936,0:03:21.391 例えば ウェブサービスやアプリは 0:03:21.915,0:03:25.881 一般的にrebase ではなく[br]マージに最適化されています 0:03:26.447,0:03:29.244 これらは小さく的の絞られた変更を[br]masterブランチに 0:03:29.478,0:03:33.386 できるだけ素早く実行できるような[br]メカニズムが必要だからです 0:03:33.884,0:03:36.087 それによって行われるべき変更が[br]全てなされなければ 0:03:36.482,0:03:39.857 別のブランチを使って[br]またマージするのです 0:03:40.260,0:03:41.897 Rebase は履歴を明瞭なものに 0:03:41.897,0:03:44.052 最適化する力強い機能です 0:03:44.370,0:03:47.228 あなたのプロジェクトやチームの[br]必要としている物を確認しましょう 0:03:47.716,0:03:50.321 今後のブランチに[br]素早く実行する必要があれば 0:03:50.321,0:03:51.641 すぐマージすればいいでしょう 0:03:51.907,0:03:54.996 明確な履歴が必要なら[br]Rebase を使えばいいのです 0:03:56.979,0:03:58.978 Git & GitHub Foundationsの[br]Rebase編を 0:03:58.978,0:04:00.429 ご覧いただきありがとうございます 0:04:00.563,0:04:02.592 ここでチャンネルの購読を忘れずに 0:04:02.592,0:04:05.365 質問やコメントは下からどうぞ 0:04:05.365,0:04:08.695 ブランチの作り方などの[br]関連動画もご覧下さい