とにかく、GIT のすべてのコミット日付を、すべての日付から 1 週間としましょう。
同様に、「日付 Thu, Sept 10 2012 USER commit...」を表示する代わりに、「On date Mon, Sept 3 2012 USER commit ...」と表示したいと思います。
これは、1 つの GIT リポジトリのみを対象としています。ありがとう!
とにかく、GIT のすべてのコミット日付を、すべての日付から 1 週間としましょう。
同様に、「日付 Thu, Sept 10 2012 USER commit...」を表示する代わりに、「On date Mon, Sept 3 2012 USER commit ...」と表示したいと思います。
これは、1 つの GIT リポジトリのみを対象としています。ありがとう!
はい、これはgitfilter-branchで実行できます。ただし、これはすべてのハッシュにも影響することに注意してください。すべてのコミットが再作成され、リポジトリの履歴が書き換えられます。ですから、それは危険かもしれません。
GIT_AUTHOR_DATE変数とGIT_COMMITTER_DATE変数を設定するenvフィルターでgitfilter-branchを使用する必要があります。githubには、すべてのコミットの作成者情報を変更するサンプルスクリプトがあります。これは似たようなものです。代わりに、前述の変数を使用するだけでなく、特定の日付に基づいて日付を決定するロジックを実装する必要があります。一週間前。
最終警告:誰かがすでにそのレポで作業している場合、物事は厄介になる可能性があります。githubページから:
このアクションは、リポジトリの履歴を破壊します。念のため、クローンでこれを行うのが最善です。また、他の人と共有されているリポジトリではこれを実行しないように注意してください。自己責任。
そこにある例のほとんどはシェル スクリプト (eis answer など) に基づいています。
schacon の ruby-git gemgit filter-branch
と組み合わせることで、より読みやすい解決策を見つけました(これは素晴らしいですが、AFAIK には書き換え機能がありません)。Ruby は git history をループし、日付/時刻演算を適用するために使用されます。これは、ActiveSupportを使用すると非常に便利です。actual + 6.months
https://gist.github.com/defvol/2bc0c3cff0d749121453で私のスクリプトを参照してください