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
ブランチの作り方などの
関連動画もご覧下さい