2016-12-18 4 views
1

git rebaseによってgit repo(githubホスト)をクリーンアップし、コミットを 'fixup'オプションを使用して1つにまとめる必要があります。
私のレポは3年前に戻るので、私はこの段階的なことができると思った。
たとえば、最近の5回のコミットはすべてOKですが、6th-10thは1つにまとめる必要があります。だから私は、次の操作を行います。コミット時の元の日付/時刻スタンプを保持するGit対話型rebase(fixup)

逆の順序でそれらをリストし、10日にはコミット
git rebase -i @~10 

は私が手にしたいものです。
次の4つのコミットはすべて 'fixup'です。
残りの5個は 'pick'に設定されています。

私が終了したら、私が実行します。

git push origin +master 

問題がコミットが組み合わされているが、githubののコードビューに示されている日付は今日であるということです。
元のコミットに日付/時刻スタンプを保持してそれらを結合するだけです。これは可能ですか?

答えて

0

可能な回避策は、git rebase ...を使用するときに--committer-date-is-author-dateオプションを使用することですが、対話型のリベースとは互換性がありません。

だから、試してみてすることができます:

  • をあなたのインタラクティブなリベースを行う、そして
  • を、リベースが完了したら、 make a git filter-branchをコミットした日付を復元する:

    git filter-branch --env-filter 'GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE; export GIT_COMMITTER_DATE' 
    
+0

この度はありがとうございます。あなたが提案したfilter-branchについて読む必要があります。おそらく私たちは一歩前進することができます:自分のコミットの歴史を辿り、マイナーなものを結合してオリジナルの日付/タイムスタンプを保持する単一のコミットにするという簡単な方法はありますか? –

+0

@RichardDragonは本当にそうではありません。あなたは最初にリベースインタラクティブを行い、その後、 '--committer-date-is-author-date'を使って(コミットされていない)最新のコミットの第2のリベースを行うことができます。 – VonC

+0

素晴らしい、あなたの提案は私のために働いているようです、ありがとう! –

関連する問題