-
Git はソフトウェアに
あなたが加えた修正をすべて追跡します
-
でもreflog を使えば―
-
あなたの修正に対する修正も
追跡できると知っていますか?
-
GitHub と Git 基礎
-
Git のユーザーがまず発見するのは
-
レポジトリに行うコミットはすべて
-
瞬間的に記録され
-
コードベースの進行状態を
示すということです
-
しかしGit のもっと上級者なら
reflog によって
-
実行されたコミットの履歴だけでなく
-
破棄されたコミットの履歴も
記録していると気づくでしょう
-
これによって30日間の
ローリングバッファを見ることができ
-
そこから間違いを修正することができます
-
git reset コマンドを
用いた有害なもの―
-
ブランチの削除や
-
誤って行われたrebase なども含みます
-
Git reset は各ブランチに
固有のものです
-
より詳しく見ようと思うなら
-
.git フォルダの中に
-
logs というサブディレクトリがあります
-
下位にローカルのレポジトリの
-
各ブランチごとのファイルがあります
-
これらのlogs はそれぞれ
行った変更を
-
時系列の前後両方向に記録しています
-
これに対するユーザーインターフェースが
git reflog コマンドです
-
これは最新の履歴を表示します
-
ページングのメカニズムによって
現在作業を行っているブランチに起こった
-
過去のエントリーを見せてくれます
-
git reflog を初めて実行して
-
画面上に表示される
履歴を見たら
-
それに対して何ができるのかと
思うかもしれません
-
表示されている
7桁のハッシュ値を―
-
コードベースの回復のための
候補として使いましょう
-
このハッシュ値に対し
git reset --hard を行うのです
-
これで現在のブランチは強制的に
-
その時点にまで戻ります
-
GUIの利用
-
git reflog が提供する履歴は
直線的で―
-
たどるのが難しいかもしれません
-
どれが空ブランチなのか?
-
どれがコードベースに
もう関係のないコミットなのか?
-
ちょっとコマンドラインに
立ち入って操作することで
-
reflog の結果をGUIに渡して
表示できます
-
例えば gitk がそうです
-
これでどのブランチが
空ブランチであるか―
-
どのコミットがブランチに関係ないか
-
そして回復したいのがどれかがわかります
-
回復には 説明したように
-
ハッシュ値を渡して
reset --hard を実行します
-
頻繁にコミット
-
git reflog によって
頻繁にコミットできるようになります
-
頻繁にコミットを行えば
reflog に履歴が残り
-
リセットやコミットの削除をしたり
-
変更したり 間違っても大丈夫です
-
コミットされていないものは
作業中のディレクトリでも
-
ステージングエリアでも
リスクにさらされていますが
-
コミットされていれば
回復できるのです
-
過去30日間の分は
保険のようなもので
-
他のGit の機能を使うことで
-
大きく大胆な一歩を
踏み出すことができます
-
ありがとうございました
-
Git and GitHub Foundationsの
reflog 編を
-
ご覧いただきありがとうございます
-
こちらからチャンネルを購読するのを
お忘れなく
-
質問や効果的な使い方は
-
下で尋ねてください
-
reset に関するものなどの
関連動画も
-
とても役立ちます
-
reflog について学んだことと
一緒に活かせますよ