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]関連動画もご覧下さい