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