Git 저장소에서 삭제된 파일을 모두 나열하려면 어떻게 해야 합니까?
Git가 파일이 삭제될 때의 정보를 저장하고 제거된 파일을 확인하기 위해 개별 커밋을 확인할 수 있다는 것을 알고 있습니다. 하지만 저장소의 수명 동안 삭제된 모든 파일의 목록을 생성하는 명령이 있습니까?
git log --diff-filter=D --summary
Git 저장소에서 삭제된 파일 찾기 및 복원을 참조하십시오.
제거된 커밋에 대한 모든 정보를 원하지 않는 경우 다음을 추가할 수 있습니다.grep delete
저 안에
git log --diff-filter=D --summary | grep delete
이건 당신이 원하는 걸 해주는 거예요
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
제가 방금 이 다른 대답에서 다소 직접적으로 받아들인 것입니다.
이렇게 하면 다른 정보 없이 파일 경로만 인쇄됩니다.
BETA.md
CONTRIBUTING.md
files/en-us/api/file_api/index.html
files/en-us/games/index/index.md
files/en-us/games/visual-js_game_engine/index.html
files/en-us/games/visual_js_ge/index.html
files/en-us/games/visual_typescript_game_engine/index.html
...
현재 삭제된 파일만 보려는 경우 다음을 사용할 수 있습니다.
git ls-files --deleted
그런 다음 제거하려는 경우("gitrm"을 사용하지 않고 삭제한 경우) xargs gitrm이 되는 파이프
git ls-files --deleted | xargs git rm
이 스택 오버플로 답변을 인용합니다.
변경된 각 파일에 대한 변경 유형(A:Added, M:Modified, D:Deleted)을 가져오는 방법은 매우 간단합니다.
git diff --name-status HEAD~1000
그리고 결과를 어떻게든 제한하고 싶다면 여기 좋은 것이 있습니다.
$ 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 명령 참조), 발생한 커밋 번호와 함께 입력합니다.모든 sedgex가 가능합니다(삭제된 파일 형식 등을 찾는 데 사용).
Windows(윈도우)에는 다음이 없기 때문입니다.grep
PowerShell에서 이 기능이 작동했습니다.
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
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 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 삭제"가 필요합니다.
이름을 새 줄 문자로 순수하게 구분하려면 다음을 사용할 수 있습니다.--name-only
다음과 같은 플래그:
git diff --diff-filter=D --name-only <old-commit-hash> <new-commit-hash>
언급URL : https://stackoverflow.com/questions/6017987/how-can-i-list-all-the-deleted-files-in-a-git-repository
'source' 카테고리의 다른 글
이클립스 안드로이드 플러그인 -- libncurses.so .5 (0) | 2023.05.09 |
---|---|
일반 목록/에뮬레이터를 데이터 테이블로 변환하시겠습니까? (0) | 2023.05.09 |
String은 어떻게 작동합니까?스위프트의 인덱스 작업 (0) | 2023.05.09 |
메이븐 프로젝트 업데이트 오류 해결 방법지원되지 않는 IClasspathEntrykind=4? (0) | 2023.05.09 |
Github 사용 권한 거부: SSH add 에이전트에 ID가 없습니다. (0) | 2023.05.09 |