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 価値を付与しないコミットを[br]捨てることでもあります 0:01:54.407,0:01:57.748 送信・発信したり[br]シェアしたりしたくないものです 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](音声が静かになる)