Gitで日付でチェックアウトするにはどうすればいいですか? 質問する

Gitで日付でチェックアウトするにはどうすればいいですか? 質問する

私はソース コードの回帰に取り組んでいます。Git に「パラメータ化された日付/時刻に基づいてソースをチェックアウトする」ように指示したいのですが、これは可能ですか?

また、現在のビューには、失いたくない段階的な変更もあります。理想的には、現在のソースと、以前の日付に基づいて興味のあるバージョンを切り替えられるようにしたいと思います。

ベストアンサー1

現在の変更を維持するには

を使用すると、コミットせずに作業を隠しておくことができますgit stash。その後、 を使用してgit stash pop作業を取り戻します。または、( carleetoが言ったように)git commit別のブランチに移動することもできます。

rev-parse を使用して日付でチェックアウトする

次のようにして、特定の日付でコミットをチェックアウトできますrev-parse

git checkout 'master@{1979-02-26 18:30:00}'

利用可能なオプションの詳細については、git-rev-parse

コメントで述べたように、このメソッドはreflogを使用して履歴内のコミットを見つけます。デフォルトではこれらのエントリは90日後に期限切れreflog を使用するための構文は簡潔ですが、90 日間しか遡ることができません。

rev-list を使用して日付でチェックアウトする

reflog を使用しないもう 1 つのオプションは、次のコマンドを使用してrev-list特定の時点でのコミットを取得することです。

git checkout `git rev-list -n 1 --first-parent --before="2009-07-27 13:37" master`

マージによって取り込まれたバージョンではなく、履歴のみが必要な場合は、--first-parent に注意してください。通常はこれが必要です。

おすすめ記事