Git에서 가장 자주 변경되는 파일을 어떻게 표시 할 수 있습니까?
답변
파일 당 커밋 수 (커밋 및 활성 날짜 별)에 대한 통계를 표시 git effort
하는 ( git-extras
패키지에서) 명령을 사용할 수 있습니다 .
편집 : 자식의 노력은 단지 떠들썩한 파티 스크립트 당신이 여기에서 찾을 수 있습니다 그리고 당신은 더 특별한 무언가가 필요하다면 여러분의 필요에 적응.
답변
다음과 같이 할 수 있습니다.
git log --pretty=format: --name-only | sort | uniq -c | sort -rg | head -10
로그는 각 커밋에서 변경된 파일의 이름 만 출력하고 나머지는 가장 자주 나타나는 상위 10 개의 파일 이름을 정렬하고 출력합니다.
답변
Mark
와
sehe의
답변이 --follow
파일 이 아니라는 것을 알았습니다. 즉
, 파일 이름이 변경되면 중지됩니다. 이 스크립트는 훨씬 느리지 만 그 목적으로 작동합니다.
git ls-files |
while read aa
do
printf . >&2
set $(git log --follow --oneline "$aa" | wc)
printf '%s\t%s\n' $1 "$aa"
done > bb
echo
sort -nr bb
rm bb
답변
powershell의 경우 git bash가 설치되어 있다고 가정합니다.
git log --pretty=format: --name-only | sort | uniq -c | sort -Descending | select -First 10
답변
이것은 Windows 버전입니다
git log --pretty=format: --name-only > allfiles.csv
그런 다음 Excel에서 엽니 다.
A1: FileName
A2: isVisibleFilename >> =IFERROR(IF(C2>0,TRUE,FALSE),FALSE)
A3: DotLocation >> =FIND("@",SUBSTITUTE(A2,".","@",(LEN(A2)-LEN(SUBSTITUTE(A2,".","")))/LEN(".")))
A4: HasExt >> =C2>1
A5: TYPE >> =IF(D2=TRUE,MID(A2,C2+1,18),"")
피벗 테이블 생성
values: Type
Filter: isFilename = true
Rows : Type
Sub : FileName
click [Count Of TYPE] -> Sort -> Sort Largest To Smallest
답변
git whatchanged --all | \grep "\.\.\." | cut -d' ' -f5- | cut -f2- | sort | uniq -c | sort
만보고 싶다면 파일 추가 --author
에 git whatchanged --author=name --all
.
답변
오래된 질문이지만 여전히 매우 유용한 질문이라고 생각합니다. 다음은 직선형 powershell의 작동 예입니다. 이것은 당신이 속한 브랜치와 관련하여 당신의 저장소에서 가장 많이 변경된 파일 10 개를 얻을 것입니다.
git log --pretty=format: --name-only | Where-Object { ![string]::IsNullOrEmpty($_) } | Sort-Object | Group-Object | Sort-Object -Property Count -Descending | Select-Object -Property Count, Name -First 10