3
내 repo가 정리 작업에 지연되었습니다. 좋은 출발점은 모든 파일을 마지막으로 터치 한 순서대로 나열하고 가장 오래된 파일부터 시작하는 것입니다. 이것을 달성 할 수있는 방법이 있습니까?마지막 수정 날짜순으로 파일 나열
내 repo가 정리 작업에 지연되었습니다. 좋은 출발점은 모든 파일을 마지막으로 터치 한 순서대로 나열하고 가장 오래된 파일부터 시작하는 것입니다. 이것을 달성 할 수있는 방법이 있습니까?마지막 수정 날짜순으로 파일 나열
표준 git 명령을 사용하여이 작업을 수행 할 방법이 없습니다. 필요한 것은 전체 저장소에 대해 git blame
의 일종이며, 각 파일을 변경 한 기록의 마지막 커밋을 식별하는 것입니다.
#!/bin/bash
function last-modified()
{
git blame -p "$1" | awk '
BEGIN {
print 0;
}
$1 == "author-time" {
print $2;
}' | sort -n | tail -n 1
}
function list-files()
{
for file in $(git ls-files); do
echo "$(last-modified $file) $file"
done
}
list-files | sort -n
이 방법은 수 : 물론, 해당 타임 스탬프에 따라 최신의 타임 스탬프가 파일에 내용을 추가하는 커밋 식별하기 위해 도자기 출력을 구문 분석, 표준 git blame
를 사용하고 파일을 정렬 할 수 콘텐츠를 에 추가하여을 파일에 등록하는 경우 콘텐츠는 이 아니며 파일에서이 제거되었습니다. 또한 저장소에 author-time
으로 시작하는 줄이있을 때 중단됩니다.
실제로 수정 된 저장소의 모든 (로컬) 파일을 나열하거나 체크인으로 파일이 수정 된 순서를 나열 하시겠습니까? 즉, 실제로 자식 동작을 요구하고 있습니까? 아니면 쉘/파일 시스템 작업을 원하십니까? –