gitブランチのリベース中にタイムスタンプを変更する


97

コミットが公開される前に、ブランチのコミットを再編成して、コミットのタイムスタンプを混合した順序にしました。ほんの数秒の間にすべてが今日であるようにしたいです。

明らかにこれらのタイムスタンプも正しくありませんが、これは物事が公開される時期であるため、時間の観点から、履歴を混同するよりも優先します。

では、リベース中に新しいタイムスタンプを作成するようにgitに指示するにはどうすればよいですか?

回答:


134
git rebase --ignore-date

2
投稿する前に試してみました。インタラクティブに行ったことがないことを除けば、たぶんそれがトリックでしょうか。また、-committer-date-is-author-dateエイリアスを試しましたか?--ignore-dateが後のバージョンで導入されたのかもしれませんが、私にはわかりません。
Michael Krelin-ハッカー、2009年

2
はい、非インタラクティブに実行すれば機能します。しかし、その後-いつものようにリベースで-最初のコミットは影響を受けません。
tarsius 2010

2
@ MichaelKrelin-hacker:ドキュメントによれば、-- ignore-dateこれらのフラグはgit amに渡され、リベースされたコミットの日付を簡単に変更します(git-am [1]を参照)。--interactiveオプションと互換性がありません。
Tim

4
@Timルートコミットには親がありません。この質問をすると、そのコミットの日付も変更したいと思いました。これで--root、これが可能になります。
tarsius 2015年

3
Incompatible with the --interactive option. ドキュメントを参照
VlastimilOvčáčík2017年

28

私の場合、変更されたタイムスタンプをCommitDate値にリベースしたため、gitwebでは、数か月前のコミットの束が4日前のものとして表示されました。私は正しい日付の最後のコミットを見つけてしました:

$ git rebase --committer-date-is-author-date SHA

39
いいえ、ちがいます。実際、それは正反対です。のドキュメントからgit rebase:「これらのフラグはgit am、リベースされたコミットの日付を簡単に変更するために渡されます。」でgit am、それは言う:--committer-date-is-author-date[...]著者の日付と同じ値を使用してコミッター日程度うそにユーザーを可能にしながら、」--ignore-date" [...]ユーザーが同じ値を使用して、著者日付について嘘を可能にコミッター日付として "
Enrico Campidoglio

9

以下の方法があります

  1. 通常のリベース

    git rebase --ignore-date
    
  2. インタラクティブなリベース

    git rebase -i master
    git commit --amend --date=now
    git push origin <branch> -f
    
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.