-
Git reset はレポジトリの履歴を
形成できるコマンドです
-
変更を取り消したり
コミットを修正したりするなら
-
このコマンドを使いましょう
-
♪ (ボッサの音楽) ♪
-
Git and GitHub Foundationsによる
-
reset コマンドの
エピソードにようこそ
-
このコマンドには多くの力があり
様々なモードがあります
-
ここでご紹介するのは3つのモードです
-
まずはsoft 標準設定のmixed
そしてhard です
-
♪ (音楽) ♪
-
これらの形容詞はかなり説明的です
-
まずは標準設定のmixedから
始めましょう
-
これは履歴だけでなく
作業中のディレクトリも変更します
-
だからミックス―
両方だというわけです
-
softは1つか複数のコミットの変更を
-
ステージングエリアに戻すので
-
それをもとに新しいコミットの作成を
継続できます
-
一方Hard は破壊的な作業です
-
つまり保存しておきたくないものを
消すための作業です
-
これら3つを念頭に置いて
-
まずはmixed から見ていきましょう
-
Mixed はGitを使い始めたユーザーに
-
度々推奨されるもので
-
なぜならstatus コマンドの中に
表示されるからです
-
ステージングエリアに変更があり
-
git status を見ると
git reset HEADがあります
-
これによってこれらの変更を
ステージングエリアに持ち込み
-
mixed オプションで
作業中のディレクトリに
-
戻すことができます
-
Soft というのは
細かすぎる変更を
-
扱うときに使うものです
-
1 2 3 4 5つのコミットが
-
すべて1つのトランザクションで
あることに気付いたので
-
すべてまとめることにします
-
git reset -- soft HEAD~5 を使って
-
最近の5つのコミットをまとめましょう
-
soft を使ったこのコマンドで
-
5つのコミットをすべて―
-
1つのコミットとして
ステージングエリアにまとめられます
-
履歴の修正にはとても役立ちますが
-
履歴の修正は
もっと極端な場合には
-
価値を付与しないコミットを
捨てることでもあります
-
送信・発信したり
シェアしたりしたくないものです
-
ここでhard が役に立ちます
-
一部の作業を完全に削除したい場合
-
変更を試みたけれど
うまくいかなかった場合などは
-
git reset -- hard を使って
完全にこれらのコミットを削除できます
-
ではどうしてコミットを
作るのかと尋ねるかもしれません
-
Gitは reflog コマンドで
とてもいいセーフティーネットを
-
提供しており これについては
今後のエピソードでご紹介します
-
コミットでチェックポイントを
作ることを勧めるものです
-
hard が使えることを
知っていることで
-
履歴をいつでも整理できますね
-
♪ (音楽) ♪
-
reset と一緒に語られることの多い
親戚のようなコマンドがあります
-
checkout というコマンドです
-
checkout コマンドはreset とは
少し精度が異なり
-
たいていレポジトリの履歴全体を
操作するものです
-
Checkout はディレクトリや
ファイルレベルの操作に特化しています
-
コミット全体を取り消したり
変更するのではなく
-
履歴でコミットの
特定のファイルに戻ることができ
-
そのファイルとバージョンを
現在作業中のディレクトリに戻します
-
Gitレポジトリの履歴が目指すところは
明瞭なコミュニケーションです
-
ですからgit reset hard でも
reset soft でも reset mixed でも
-
より正確なcheckout コマンドでも
-
あなたの変更の明確な意図が
同僚に伝わるように使ってください
-
Git reset は新しいGitユーザーには
少し使うのが怖いツールのように
-
思えるかもしれません
-
でも 美しいレポジトリの履歴を
作るために
-
とても役立つツールにもなります
-
Git and GitHub Foundationsのreset 編を
ご覧いただきありがとうございます
-
いつも通り 横にあるチャンネルを
購読するのをお忘れなく
-
質問やコメントは下にどうぞ
-
GitやGitHubに関する
ためになるトピックも
-
下でチェックしてくださいね
-
♪ (音楽) ♪
(音声が静かになる)