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-]\^*.*”
모든 줄이 인쇄됩니다.
중복 행을 제거하는 데 도움을 줄 수 있나요?