問題タブ [git-reflog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - ローカルの Git リポジトリ (メモ、スタッシュ、reflog を含む) をバックアップし、別のマシンに復元する
タイトルにあるように、ローカルの Git リポジトリとその状態を完全にバックアップし、別のマシンに復元して、新しいリポジトリを以前のマシンとまったく同じ状態にするにはどうすればよいですか?
私は主に、次のようなローカルのものを失わないようにしています。
- 隠し場所(それが最も重要なことです)
- reflog(操作履歴を残したい)
- ノート
- 残りすべて(おそらく)
編集
などの隠しファイルを含むローカル ディレクトリを圧縮.git
し、他のマシンに復元しようとしました。
その後、私が得たものgit status
は次のとおりです。
- 変更されたファイルの巨大なリスト(そして私は変更を認識していません)
- リポジトリは切り離された HEADにあります
すべてが.git
フォルダー内にある場合、なぜ HEAD が分離され、古いリポジトリーの同じポインティングが得られないのですか?
そして、これらすべての変更/削除/タイプ変更されたファイルは何ですか?
古いリポジトリからすべて.git
を実際に取っているわけではないようです。
git - Git: 強制プッシュを元に戻す方法
最新でないコードでサーバーに強制プッシュした場合、マスター ブランチを初期状態に戻すことはできますか? reflog コマンドを試しましたが、ローカル コミットのみを追跡するため機能しません。
ありがとう
git - 特定のブランチがどのブランチにリベースされたかを知る方法
git reflog
コマンドに渡されるブランチの名前を知る必要があるため、ブランチに関する情報を取得するために使用しています。
たとえば、を使用する場合、ブランチがリベースに使用されるgit rebase --onto master
ことを知る必要があります。master
問題は、reflog
どのブランチが使用されたかがわからないことです。代わりに、このブランチがリベースされたコミットの SHA が表示されます。
次のref-log出力を確認してください(ブランチはにリベースされましたmaster
)
a9d523f1a73fe2cd2857ee3d013463069fe51c3d
ここで、リベース時にこのコミット SHA がどのブランチに属していたかを知る必要があります。これは、master がその時点以降に移動した場合でも機能するはずです。
複数のオプションを試しgit log
てみましたが、特定の時間ではなく、ブランチの現在の状態を返します。
どうすればこの情報を入手できますか? 正確な参照を取得できない場合 (master
この場合)、その時点でこのコミットのすべての参照を取得することは可能でしょうか?
編集
@Jubobsコミットに基づいて、質問を次のように言い換えることができるかもしれません:リベース時にどの参照がこのコミットに関連付けられたか
git - gitの現在のブランチで発生したマージのリストを取得するだけです
Git ですべてのブランチ マージ コミットを一覧表示する方法はありますか? 試してみましたがgit reflog
、コミットが表示され、
ブランチのマージを検出するのに十分な (マージ) 文字列を使用していますか?
git - 期限切れの reflog ログの表示
期限切れの reflog を表示する方法はありますか? 私は数か月前にローカル ブランチで行ったいくつかのローカル コミットを保持しており、頻繁にリベースすることでリモート ブランチで最新の状態に保っています。どういうわけか、このブランチのローカル コミットをすべて失い、回復する方法がありません。git reflog が特定の日付を過ぎたログを表示していないためです。
git - git reflog をバックアップできますか? コードの損失を防ぐためのベスト プラクティスに関するアドバイス
git reflog
押しつぶされたコミットなど、すべてのアクティビティを表示します(間違っている場合は修正してください)。
git reflog をバックアップするための git CLI コマンドはありますか?
明らかに、レポのローカル バージョンを削除すると、reflog が失われます (間違っている場合は修正してください)。
git push
安全とかそういうことでいいのかな?
そうでない場合、reflogの損失を防ぐためにどのようなアプローチをとるべきですか?
更新: Jiri Kremser への回答として、復元後に reflog 内の任意のコミットにバックアップ.git/logs
できますか?git reset --hard