0:00:00.206,0:00:04.306
Git reset はレポジトリの履歴を[br]形成できるコマンドです
0:00:04.306,0:00:07.945
変更を取り消したり[br]コミットを修正したりするなら
0:00:07.945,0:00:09.401
このコマンドを使いましょう
0:00:09.651,0:00:11.241
♪ (ボッサの音楽) ♪
0:00:14.691,0:00:17.130
Git and GitHub Foundationsによる
0:00:17.130,0:00:18.669
reset コマンドの[br]エピソードにようこそ
0:00:18.669,0:00:21.510
このコマンドには多くの機能があり[br]様々なモードがあります
0:00:21.510,0:00:25.002
ここでご紹介するのは3つのモードです
0:00:25.002,0:00:28.236
これらは[br]soft ; mixedまたは標準設定; そしてhard です
0:00:28.555,0:00:30.587
♪ (音楽) ♪
0:00:31.162,0:00:33.101
これらの名称が機能を説明しています
0:00:33.101,0:00:35.513
まずは標準設定のmixedから[br]始めましょう
0:00:35.830,0:00:39.648
これは履歴だけでなく[br]作業中のディレクトリも変更します
0:00:39.918,0:00:41.708
だからミックス―[br]両方だというわけです
0:00:41.898,0:00:44.427
softは1つか複数のコミットの変更を
0:00:44.427,0:00:47.179
ステージングエリアに戻すので
0:00:47.179,0:00:50.048
それをもとに新しいコミットの作成を[br]継続できます
0:00:50.433,0:00:53.039
一方Hard は破壊的な作業です
0:00:53.039,0:00:55.992
つまり保存しておきたくないものを[br]消すための作業です
0:00:55.992,0:00:59.112
これら3つを念頭に置いて
0:00:59.112,0:01:00.710
まずはmixed から見ていきましょう
0:01:03.475,0:01:05.173
Mixed はGitを使い始めたユーザーに
0:01:05.173,0:01:07.241
度々推奨されるもので
0:01:07.241,0:01:09.419
なぜならstatus コマンドの中に[br]表示されるからです
0:01:09.419,0:01:11.341
ステージングエリアに変更があり
0:01:11.341,0:01:14.103
git status を見ると[br]git reset HEADがあります
0:01:14.103,0:01:16.926
これによってこれらの変更を[br]ステージングエリアに持ち込み
0:01:16.926,0:01:19.015
mixed オプションで[br]作業中のディレクトリに
0:01:19.015,0:01:20.201
戻すことができます
0:01:20.672,0:01:23.379
Soft というのは[br]細かすぎる変更を
0:01:23.379,0:01:25.706
扱うときに使うものです
0:01:26.033,0:01:27.869
1 2 3 4 5つのコミットが
0:01:27.869,0:01:30.846
すべて1つのトランザクションで[br]あることに気付いたので
0:01:30.846,0:01:32.434
すべてまとめることにします
0:01:32.434,0:01:36.542
git reset -- soft HEAD~5 を使って
0:01:36.542,0:01:38.310
最近の5つのコミットをまとめましょう
0:01:38.615,0:01:40.920
soft を使ったこのコマンドで
0:01:40.920,0:01:42.706
5つのコミットをすべて―
0:01:42.706,0:01:46.285
1つのコミットとして[br]ステージングエリアにまとめられます
0:01:46.665,0:01:48.765
履歴の修正にはとても役立ちますが
0:01:48.765,0:01:51.465
履歴の修正には価値を付与しないコミットを[br]
0:01:51.465,0:01:54.407
破棄するという極端な場合もあります
0:01:54.407,0:01:57.748
送信・発信したり 他の人と共有したくない場合です
0:01:57.752,0:01:59.411
ここでhard が役に立ちます
0:01:59.411,0:02:01.983
一部の作業を完全に削除したい場合
0:02:01.983,0:02:04.900
変更を試みたけれど[br]うまくいかなかった場合などは
0:02:04.900,0:02:08.331
git reset -- hard を使って[br]完全にこれらのコミットを削除できます
0:02:08.606,0:02:11.268
ではどうしてコミットを[br]作るのかと尋ねるかもしれません
0:02:11.268,0:02:13.971
Gitは reflog コマンドで[br]とてもいいセーフティーネットを
0:02:13.971,0:02:17.078
提供しており これについては[br]今後のエピソードでご紹介します
0:02:17.078,0:02:20.108
コミットでチェックポイントを[br]作ることを勧めるものです
0:02:20.108,0:02:22.353
hard が使えることを[br]知っていることで
0:02:22.353,0:02:24.560
履歴をいつでも整理できますね
0:02:25.470,0:02:27.084
♪ (音楽) ♪
0:02:27.760,0:02:32.178
reset と一緒に語られることの多い[br]親戚のようなコマンドがあります
0:02:32.178,0:02:34.152
checkout というコマンドです
0:02:34.152,0:02:37.702
checkout コマンドはreset とは[br]少し精度が異なり
0:02:37.702,0:02:41.266
たいていレポジトリの履歴全体を[br]操作するものです
0:02:41.703,0:02:45.395
Checkout はディレクトリや[br]ファイルレベルの操作に特化しています
0:02:45.756,0:02:48.947
コミット全体を取り消したり[br]変更するのではなく
0:02:48.947,0:02:52.710
履歴でコミットの[br]特定のファイルに戻ることができ
0:02:52.710,0:02:57.297
そのファイルとバージョンを[br]現在作業中のディレクトリに戻します
0:02:57.685,0:03:01.234
Gitレポジトリの履歴が目指すところは[br]明瞭なコミュニケーションです
0:03:01.487,0:03:05.662
ですからgit reset hard でも[br]reset soft でも reset mixed でも
0:03:05.662,0:03:08.145
より正確なcheckout コマンドでも
0:03:08.145,0:03:12.757
あなたの変更の明確な意図が[br]同僚に伝わるように使ってください
0:03:12.954,0:03:15.976
Git reset は新しいGitユーザーには[br]少し使うのが怖いツールのように
0:03:15.976,0:03:17.235
思えるかもしれません
0:03:17.434,0:03:20.184
でも 美しいレポジトリの履歴を[br]作るために
0:03:20.184,0:03:22.473
とても役立つツールにもなります
0:03:24.371,0:03:28.029
Git and GitHub Foundationsのreset 編を[br]ご覧いただきありがとうございます
0:03:28.029,0:03:31.687
いつも通り 横にあるチャンネルを[br]購読するのをお忘れなく
0:03:31.687,0:03:33.811
質問やコメントは下にどうぞ
0:03:33.811,0:03:36.401
GitやGitHubに関する[br]ためになるトピックも
0:03:36.401,0:03:38.523
下でチェックしてくださいね
0:03:38.789,0:03:41.528
♪ (音楽) ♪[br](音声が静かになる)