최근에 90 %의 공백 변경으로 구성된 브랜치를 일부 변경했습니다. 이제 다른 10 %의 변경 사항을받은 파일의 수를 계산하고 싶습니다. git diff
와 같은 다른 매개 변수를 전달 하는 동안 방법이 --ignore-blank-lines
있습니까? git diff --name-only --ignore-blank-lines
필터링 된 목록이 아닌 변경된 모든 파일의 전체 목록을 반환합니다. 생략 --name-only
하면 diff는 내가 원하는 정확한 변경 사항을 보여 주지만 원하는 것은 파일 목록 뿐이므로 변경 사항 자체는 신경 쓰지 않습니다.
감사!
불행하게도, 모두 --name-only
와 --name-status
사용 바로 가기 : 그들은 저장된 비교 나무 상기 보지 않고 (이름과 해시 ID)를 파일 내용 . 1
해야 할 일은 공백 옵션과 함께 git diff
(또는 git show
)을 사용한 다음 파일 이름을 제외한 모든 것을 제거하는 것입니다. 예를 들면 :
$ git show | grep '^diff '
diff --git a/file1 b/file1
diff --git a/file2 b/file2
$ git show --ignore-blank-lines | grep '^diff '
diff --git a/file2 b/file2
좀 더 마사지 (및 / 또는 사용 --no-prefix
)하면 a/
및 b/
접두사 없이 파일 이름 만 얻을 수 있습니다 .
$ git show --ignore-blank-lines --no-prefix | grep '^diff '
diff --git file2 file2
1 이름 변경 감지가 활성화 된 경우 감지기 는 각 파일의 내용을 검사합니다. 그러나 공백 옵션을 사용하지 않으므로 결과에 전혀 영향을주지 않습니다. 나머지 --name-status
알고리즘은 저장된 해시를 계속 사용합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다