itsource

git-diff 및 git 로그가 새 파일 및 삭제된 파일을 무시하도록 만드는 방법은 무엇입니까?

mycopycode 2023. 7. 6. 22:12
반응형

git-diff 및 git 로그가 새 파일 및 삭제된 파일을 무시하도록 만드는 방법은 무엇입니까?

때때로 몇 개의 변경된 파일과 새 파일, 삭제된 파일 및/또는 이름이 변경된 파일이 있습니다.할 때git diff또는git-log수정 사항을 더 잘 찾을 수 있도록 생략하고 싶습니다.

실제로 새 파일과 삭제된 파일의 이름을 내용 없이 나열하는 것이 가장 좋습니다."old"가 "new"로 이름이 바뀐 경우 "old"와 "new"의 차이를 선택적으로 얻고 싶습니다.

--diff-filter옵션은 두 가지 모두에서 작동합니다.diff로그를 기록합니다.

사용합니다--diff-filter=Mdiff 출력을 내용 수정으로만 제한하는 로트.

이름과 복사본을 검색하고 diff 출력에 사용하려면 다음을 사용합니다.-M그리고.-C각각, 함께.R그리고.C에 대한 옵션.--diff-filter.

공식 문서:

--diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]]

추가된 파일(A), 복사된 파일(C), 삭제된 파일(D), 수정된 파일(M), 이름이 변경된 파일(예: 일반 파일, 심볼 링크, 하위 모듈 등), 병합되지 않은 파일(U), 알 수 없음 파일(X) 또는 쌍이 깨진 파일(B)만 선택합니다.필터 문자(없음 포함)의 모든 조합을 사용할 수 있습니다.

*(모두 또는 없음)를 조합에 추가하면 비교의 다른 기준과 일치하는 파일이 있으면 모든 경로가 선택되고, 다른 기준과 일치하는 파일이 없으면 아무것도 선택되지 않습니다.

또한 이러한 대문자는 소문자로 구분하여 제외할 수 있습니다.예: --diff-filter=ad는 추가 및 삭제된 경로를 제외합니다.

예: 추가, 복사, 수정된 파일만 표시:

git diff --diff-filter=ACM

또한 이러한 대문자는 소문자로 구분하여 제외할 수 있습니다.
예.--diff-filter=ad추가 및 삭제된 경로를 제외합니다.

당신의 경우에는,git diff --diff-filter=adGit 2.36(Q2220)이 없는 한 동일한 필터에서 소문자와 대문자를 사용하지 마십시오.

이제git diff --diff-filter=aR(man) 올바르게 구문 분석되었습니다.

커밋 75408ca, 커밋 4d4ea, 커밋 843e31 (2022년 1월 28일)을 요하네스 쉰들린()dscho 참조.
(주니오 C 하마노에 의해 합병 -- -- 2022년 2월 16일 커밋 9a16099에서)

부정적인 비트를 찾을 때 더 diff-filter주의하십시오.

사인 오프 바이: 요하네스 쉰들린

--diff-filter=<bits>옵션을 사용하면 특정 기준에 따라 차이를 필터링할 수 있습니다(예:R이름이 변경된 파일만 표시합니다.
또한 다운 케이스 문자(즉, 다운 케이스 문자)를 통해 필터를 비활성화할 수 있습니다.
r이름이 바뀐 파일을 제외한 모든 파일을 표시합니다.

그러나 사용자가 소문자 문자를 제공했기 때문에 모든 diff-filter를 켜놓고 시작해야 하는지 여부를 파악하려고 할 때 코드가 약간 지나치게 열성적입니다.--diff-filter인수는 대문자로 시작합니다. 모든 비트를 켠 상태에서 시작해서는 안 됩니다.

은, 필터를 여러 개별 할 수 있다는 를 들어, 더 나 것 은 여 서 에 옵 지 것 수 니 입 다 있 는 다 할 정 를 터 쁜 필 션 별 개 개 의 러 , ▁even 다 니 ▁in ▁the 더 입--diff-filter=AM [...] --diff-filter=m.

포함/제외 필터를 독립적으로 누적하고 옵션을 모두 구문 분석한 후 "제외 필터만 지정됨" 사례만 특수하게 누적합니다.

업데이트:Charles Bailey가 수락한 답은 정확합니다. 원하는 기능은 이미 git에 내장되어 있습니다.

깃에 내장되어 있지 않은 것들에 대한 아이디어를 제공할 수 있기 때문에 이 답변을 여기에 남깁니다.


git diff에서는 새 을 새파 일삭 에비표니다시합과 줍니다./dev/null찾는 것을 쓰는 것은 그리 어렵지 않을 것입니다 (저는 펄을 직접 사용할 것입니다)./dev/null그리고 다음 차이까지 다음 줄을 걸러냅니다.그리고나서git diff ... | the-filter.

파일 이름을 변경하는 것은 별개의 문제입니다. 저는 아직 그것에 대해 좋은 답을 가지고 있지 않습니다.

언급URL : https://stackoverflow.com/questions/6894322/how-to-make-git-diff-and-git-log-ignore-new-and-deleted-files

반응형