3

〜4000のコミットを持つ単一のブランチgitリポジトリがあります。作成された日付に従ってコミットをグループ化したい。たとえば、以下のコミットがあるとします。

abcd 2013-4-1 12:10
abce 2013-4-1 13:27
...
cdef 2013-4-1 18:16
cdeg 2013-4-2 09:23
...
gade 2013-4-2 18:20
fdeg 2013-4-3 09:42
... 

すべてのコミットを 1 つのコミットにマージしたり、すべての cdeg-gade を 1 つのコミットにマージしたりするabcdなどのコミット履歴を取得したいと考えています。cdefリベースを次のように使用しようとしました

git reset --hard cdef
git rebase -i abcd

すべてのコミットを押しつぶすことができず、次のエラー メッセージが表示されました。

"Cannot 'squash' without a previous commit"

一度に 1 つのコミットを squash しようとしましたが、うまくいきましたが、明らかに実現不可能なほど時間がかかりました。

作成日に従ってコミットをマージするにはどうすればよいですか?

4

1 に答える 1

5

毎日の最初のコミットを「reword」としてマークし、残りを「fixup」としてマークします。

reword xxxxxx First commit from 2013-04-01
squash xxxxxx another commit from 2013-04-01
squash xxxxxx another commit from 2013-04-01
reword xxxxxx First commit from 2013-04-02
etc

これにより、毎日新しいコミット メッセージを作成するように求められます。

時間ベースでコミットを行うことは、ほとんどの場合、間違ったことであることに注意してください。ツールがgit bisect正しく機能するためには、リポジトリ内の各コミットが「一口サイズ」の変更を表す必要があります。

于 2013-04-16T01:05:30.550 に答える