Gitログからの重複コミットのクリーンアップ

Gitログからの重複コミットのクリーンアップ

Gitログで重複した行をクリーンアップしようとしています。残念ながら、開発者はrebaseコマンドを使用しないため、gitログに重複したコミットメッセージがたくさんあります。

重複行を含むGitログ

TASK-1: awe
TASK-1 : aaa
TASK-1: aaa bbbb   
TASK-2: aaaaa
TASK-3: 123
TASK-3 : 123 aaa 

最初の行のジョブ番号を保持し、同じジョブ番号を持つgit logから他のすべての行を削除する必要があります。

予想される結果

TASK-1: awe
TASK-2: aaaaa   
TASK-3: 123

uniqコミットを取得するためにsortを使用しようとしています。

git log --pretty=format:"%s  " --no-merges | grep -oP --regexp="TASK-\K\d+" | sort -r | uniq

これはうまく機能するため、ジョブ番号のみが表示され、コミットメッセージは表示されません。

1
2
3

ただし、正規表現拡張を変更すると、--regexp=“^[TASK-]\^*.*”すべての行が印刷されます。

重複行を削除するのに役立ちますか?

関連情報