답변:
git log --diff-filter=D --summary
Git 저장소에서 삭제 된 파일 찾기 및 복원을 참조하십시오.
어떤 커밋이 제거되었는지에 대한 모든 정보를 원하지 않으면 grep delete
거기에 추가하십시오 .
git log --diff-filter=D --summary | grep delete
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep delete
커밋 메시지에 delete라는 단어가 있으면 선택되기 때문에 사용하십시오 . grep 'delete mode'
대신 사용하십시오 .
현재 삭제 된 파일 만보고 싶은 경우 다음을 사용할 수 있습니다.
git ls-files --deleted
그런 다음 xargs git rm에 연결되는 파이프 ( "git rm"을 사용하지 않고 삭제 한 경우)를 제거하려는 경우
git ls-files --deleted | xargs git rm
git rm $(git ls-files --deleted)
그리고 어떻게 든 결과를 제한하려면 여기 좋은 결과가 있습니다.
$ git log --diff-filter=D --summary | sed -n '/^commit/h;/\/some_dir\//{G;s/\ncommit \(.*\)/ \1/gp}'
delete mode 100644 blah/some_dir/file1 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file2 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file3 9c89b91d8df7c95c6043184154c476623414fcb7
some_dir
커밋 번호와 함께 모든 파일이 삭제됩니다 (sed 명령 참조). 모든 sed 정규식이 수행합니다 (삭제 된 파일 형식 등을 찾는 데 사용합니다)
git log --diff-filter=D .
Windows에는 grep
명령 이 없으므로 PowerShell에서 나를 위해 일했습니다.
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
Select-String
?
some_branch에 삭제 된 모든 파일 표시
git diff origin/master...origin/some_branch --name-status | grep ^D
또는
git diff origin/master...origin/some_branch --name-status --diff-filter=D
git diff origin/master...origin/some_branch --name-status | grep ^D
또는git diff origin/master...origin/some_branch --name-status --diff-filter=D
이렇게하면 모든 분기에서 삭제 된 모든 파일 목록이 경로별로 정렬됩니다.
git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt
msysgit (2.6.1.windows.1)에서 작동합니다. git 파일이 모드 100644 또는 100755로 커밋되었으므로 "삭제 모드 100"이 필요합니다.
git diff --name-status commit_hash
.