私はソース コードの回帰に取り組んでいます。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 に注意してください。通常はこれが必要です。