[解決済み] git reflogとlogの違いは何ですか?
2022-03-06 06:50:11
質問
ログはコミットログを表示し、reflogはreflog情報を管理するとマニュアルに書いてあります。reflog情報とは一体何なのでしょうか、またlogにないものは何なのでしょうか?ログははるかに詳細に見えます。
どのように解決するのですか?
git log
は、現在の HEAD とその先祖を表示します。つまり、HEAD が指しているコミット、その親、その親......といった具合に表示されます。各コミットの親を再帰的に検索し、レポの先祖をさかのぼります。
(実際には、複数の親を持つコミットもあります。より代表的なログを見るには、以下のようなコマンドを使用します。
git log --oneline --graph --decorate
.)
git reflog
は、HEAD の先祖をまったくたどらない。reflog は HEAD が指し示したコミットの一覧を並べたもので、あなたのリポジトリのアンドゥの履歴となります。reflog はレポの一部ではなく (コミットとは別に保存されます)、プッシュやフェッチ、クローンにも含まれません。
余談ですが、reflogを理解することは、一度コミットしたレポのデータを失うことがないということです。誤って古いコミットにリセットしたり、間違ってリベースしたり、その他視覚的にコミットを削除してしまうような操作をした場合、reflog を使って以前の状態を確認し
git reset --hard
に戻り、以前の状態を復元することができます。refはコミットだけでなく、その背後にあるすべての履歴を意味することを覚えておいてください。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] ステージングされた変更を表示するにはどうしたらいいですか?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み】gitがローカルバージョンをリモートバージョンに置き換える
-
[解決済み】マージの競合が発生した git stash pop の取り消し
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
[解決済み】ローカルGitブランチとそのリモートブランチを比較する方法
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?
-
[解決済み] エラーです。リベースを使用してプルできません。あなたはステージングされていない変更を持っています
-
[解決済み] "ダウンストリーム "と "アップストリーム "の定義