1
00:00:00,206 --> 00:00:04,306
Git reset はレポジトリの履歴を
形成できるコマンドです
2
00:00:04,306 --> 00:00:07,945
変更を取り消したり
コミットを修正したりするなら
3
00:00:07,945 --> 00:00:09,401
このコマンドを使いましょう
4
00:00:09,651 --> 00:00:11,241
♪ (ボッサの音楽) ♪
5
00:00:14,691 --> 00:00:17,130
Git and GitHub Foundationsによる
6
00:00:17,130 --> 00:00:18,669
reset コマンドの
エピソードにようこそ
7
00:00:18,669 --> 00:00:21,510
このコマンドには多くの機能があり
様々なモードがあります
8
00:00:21,510 --> 00:00:25,002
ここでご紹介するのは3つのモードです
9
00:00:25,002 --> 00:00:28,236
これらは
soft ; mixedまたは標準設定; そしてhard です
10
00:00:28,555 --> 00:00:30,587
♪ (音楽) ♪
11
00:00:31,162 --> 00:00:33,101
これらの名称が機能を説明しています
12
00:00:33,101 --> 00:00:35,513
まずは標準設定のmixedから
始めましょう
13
00:00:35,830 --> 00:00:39,648
これは履歴だけでなく
作業中のディレクトリも変更します
14
00:00:39,918 --> 00:00:41,708
だからミックス―
両方だというわけです
15
00:00:41,898 --> 00:00:44,427
softは1つか複数のコミットの変更を
16
00:00:44,427 --> 00:00:47,179
ステージングエリアに戻すので
17
00:00:47,179 --> 00:00:50,048
それをもとに新しいコミットの作成を
継続できます
18
00:00:50,433 --> 00:00:53,039
一方Hard は破壊的な作業です
19
00:00:53,039 --> 00:00:55,992
つまり保存しておきたくないものを
消すための作業です
20
00:00:55,992 --> 00:00:59,112
これら3つを念頭に置いて
21
00:00:59,112 --> 00:01:00,710
まずはmixed から見ていきましょう
22
00:01:03,475 --> 00:01:05,173
Mixed はGitを使い始めたユーザーに
23
00:01:05,173 --> 00:01:07,241
度々推奨されるもので
24
00:01:07,241 --> 00:01:09,419
なぜならstatus コマンドの中に
表示されるからです
25
00:01:09,419 --> 00:01:11,341
ステージングエリアに変更があり
26
00:01:11,341 --> 00:01:14,103
git status を見ると
git reset HEADがあります
27
00:01:14,103 --> 00:01:16,926
これによってこれらの変更を
ステージングエリアに持ち込み
28
00:01:16,926 --> 00:01:19,015
mixed オプションで
作業中のディレクトリに
29
00:01:19,015 --> 00:01:20,201
戻すことができます
30
00:01:20,672 --> 00:01:23,379
Soft というのは
細かすぎる変更を
31
00:01:23,379 --> 00:01:25,706
扱うときに使うものです
32
00:01:26,033 --> 00:01:27,869
1 2 3 4 5つのコミットが
33
00:01:27,869 --> 00:01:30,846
すべて1つのトランザクションで
あることに気付いたので
34
00:01:30,846 --> 00:01:32,434
すべてまとめることにします
35
00:01:32,434 --> 00:01:36,542
git reset -- soft HEAD~5 を使って
36
00:01:36,542 --> 00:01:38,310
最近の5つのコミットをまとめましょう
37
00:01:38,615 --> 00:01:40,920
soft を使ったこのコマンドで
38
00:01:40,920 --> 00:01:42,706
5つのコミットをすべて―
39
00:01:42,706 --> 00:01:46,285
1つのコミットとして
ステージングエリアにまとめられます
40
00:01:46,665 --> 00:01:48,765
履歴の修正にはとても役立ちますが
41
00:01:48,765 --> 00:01:51,465
履歴の修正には価値を付与しないコミットを
42
00:01:51,465 --> 00:01:54,407
破棄するという極端な場合もあります
43
00:01:54,407 --> 00:01:57,748
送信・発信したり 他の人と共有したくない場合です
44
00:01:57,752 --> 00:01:59,411
ここでhard が役に立ちます
45
00:01:59,411 --> 00:02:01,983
一部の作業を完全に削除したい場合
46
00:02:01,983 --> 00:02:04,900
変更を試みたけれど
うまくいかなかった場合などは
47
00:02:04,900 --> 00:02:08,331
git reset -- hard を使って
完全にこれらのコミットを削除できます
48
00:02:08,606 --> 00:02:11,268
ではどうしてコミットを
作るのかと尋ねるかもしれません
49
00:02:11,268 --> 00:02:13,971
Gitは reflog コマンドで
とてもいいセーフティーネットを
50
00:02:13,971 --> 00:02:17,078
提供しており これについては
今後のエピソードでご紹介します
51
00:02:17,078 --> 00:02:20,108
コミットでチェックポイントを
作ることを勧めるものです
52
00:02:20,108 --> 00:02:22,353
hard が使えることを
知っていることで
53
00:02:22,353 --> 00:02:24,560
履歴をいつでも整理できますね
54
00:02:25,470 --> 00:02:27,084
♪ (音楽) ♪
55
00:02:27,760 --> 00:02:32,178
reset と一緒に語られることの多い
親戚のようなコマンドがあります
56
00:02:32,178 --> 00:02:34,152
checkout というコマンドです
57
00:02:34,152 --> 00:02:37,702
checkout コマンドはreset とは
少し精度が異なり
58
00:02:37,702 --> 00:02:41,266
たいていレポジトリの履歴全体を
操作するものです
59
00:02:41,703 --> 00:02:45,395
Checkout はディレクトリや
ファイルレベルの操作に特化しています
60
00:02:45,756 --> 00:02:48,947
コミット全体を取り消したり
変更するのではなく
61
00:02:48,947 --> 00:02:52,710
履歴でコミットの
特定のファイルに戻ることができ
62
00:02:52,710 --> 00:02:57,297
そのファイルとバージョンを
現在作業中のディレクトリに戻します
63
00:02:57,685 --> 00:03:01,234
Gitレポジトリの履歴が目指すところは
明瞭なコミュニケーションです
64
00:03:01,487 --> 00:03:05,662
ですからgit reset hard でも
reset soft でも reset mixed でも
65
00:03:05,662 --> 00:03:08,145
より正確なcheckout コマンドでも
66
00:03:08,145 --> 00:03:12,757
あなたの変更の明確な意図が
同僚に伝わるように使ってください
67
00:03:12,954 --> 00:03:15,976
Git reset は新しいGitユーザーには
少し使うのが怖いツールのように
68
00:03:15,976 --> 00:03:17,235
思えるかもしれません
69
00:03:17,434 --> 00:03:20,184
でも 美しいレポジトリの履歴を
作るために
70
00:03:20,184 --> 00:03:22,473
とても役立つツールにもなります
71
00:03:24,371 --> 00:03:28,029
Git and GitHub Foundationsのreset 編を
ご覧いただきありがとうございます
72
00:03:28,029 --> 00:03:31,687
いつも通り 横にあるチャンネルを
購読するのをお忘れなく
73
00:03:31,687 --> 00:03:33,811
質問やコメントは下にどうぞ
74
00:03:33,811 --> 00:03:36,401
GitやGitHubに関する
ためになるトピックも
75
00:03:36,401 --> 00:03:38,523
下でチェックしてくださいね
76
00:03:38,789 --> 00:03:41,528
♪ (音楽) ♪
(音声が静かになる)