커밋에 모든 파일을 나열하려면 어떻게 해야 합니까?
지정된 커밋에 포함된 모든 파일의 일반 목록을 인쇄하려면 어떻게 해야 합니까?
다음은 파일 목록이지만 각 파일에 대한 원하지 않는 차이 정보도 포함합니다.
git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
선호하는 방법(배관 명령이므로 프로그래밍 방식이어야 함):
$ git diff-tree --no-commit-id --name-only bd61ad98 -r
index.html
javascript/application.js
javascript/ie6.js
다른 방법(사용자를 향하도록 의도된 자기 명령이기 때문에 스크립트에 덜 선호됨)
$ git show --pretty="" --name-only bd61ad98
index.html
javascript/application.js
javascript/ie6.js
- 그
--no-commit-id
커밋 ID 출력을 억제합니다. - 그
--pretty
인수는 시작할 때 cruft를 방지하기 위해 빈 형식 문자열을 지정합니다. - 그
--name-only
인수에는 영향을 받은 파일 이름만 표시됩니다(Thanks Hank).사용하다--name-status
대신 각 파일(삭제, 수정, 추가)에 발생한 내용을 확인하려면 - 그
-r
는
변경된 파일 목록을 가져오려면 다음을 수행합니다.
git diff-tree --no-commit-id --name-only -r <commit-ish>
커밋의 모든 파일 목록을 가져오려면 다음을 사용할 수 있습니다.
git ls-tree --name-only -r <commit-ish>
저는 이것에 대해 그것이 바람직하지 않다고 생각합니다.그렇다면, 시도해 보세요.git show --name-only <sha>
.
저는 개인적으로 show 명령어와 함께 --stat와 --oneline의 조합을 사용합니다.
git show --stat --oneline HEAD
git show --stat --oneline b24f5fb
git show --stat --oneline HEAD^^..HEAD
추가/제거 통계를 원하지 않는 경우 --stat을 --name-only로 대체할 수 있습니다.
git show --name-only --oneline HEAD
git show --name-only --oneline b24f5fb
git show --name-only --oneline HEAD^^..HEAD
또한 할 수 있습니다.
git log --name-only
다양한 커밋, 커밋 메시지 및 변경된 파일을 탐색할 수 있습니다.
프롬프트를 되돌리려면 q를 입력합니다.
최근에 두 커밋 간에 변경된 모든 파일을 나열해야 했습니다.그래서 이 명령을 사용했습니다(*nix 특정 명령도 사용했습니다).
git show --pretty="format:" --name-only START_COMMIT..END_COMMIT | sort | uniq
에단이 지적한 것처럼:
git diff --name-only START_COMMIT..END_COMMIT
용사를 합니다.--name-status
각 사항됩니다.
git diff --name-status START_COMMIT..END_COMMIT
가장 단순한 형태:
git show --stat (hash)
그것은 기억하기 쉽고 당신이 필요로 하는 모든 정보를 제공할 것입니다.
만 원한다면, 은 파이름원경추있다수니를 할 수 .--name-only
선택.
git show --stat --name-only (hash)
저는 바뀐 가명을 꽤 자주 사용합니다.설정 방법:
git config --global alias.changed 'show --pretty="format:" --name-only'
그러면:
git changed (lists files modified in last commit)
git changed bAda55 (lists files modified in this commit)
git changed bAda55..ff0021 (lists files modified between those commits)
유용할 수 있는 유사한 명령:
git log --name-status --oneline (very similar, but shows what actually happened M/C/D)
git show --name-only
사용하다
git log --name-status
커밋 ID, 메시지, 변경된 파일, 수정, 생성, 추가 또는 삭제 여부가 표시됩니다.일종의 올인원 명령입니다.
이름과 행 수를 변경하려면 이 명령을 사용하십시오.
git show --stat <commit-hash>
파일 이름만 표시
git show --stat --name-only <commit-hash>
마지막 커밋 해시를 가져오려면 다음 명령을 사용합니다.
git log -1
show files name 및 file status modify, create 또는 delete 표시가 있는 마지막 커밋:
git log -1 --oneline --name-status <commit-hash>
아니면 모두를 위하여
git log
Git 로그에 대한 자세한 내용은 다음 문서를 참조하십시오.
표준 명령 사용(스크립팅에도 유용):
git diff --name-only <sha>^ <sha>
변경된 파일의 상태도 원하는 경우:
git diff --name-status <sha>^ <sha>
병합 커밋에서 잘 작동합니다.
특정 커밋에서 변경된 파일을 나열하는 방법
git show --pretty=%gd --stat <commit_id>
최근 커밋 시 변경된 파일을 나열하는 방법
git show --pretty=%gd --stat
git log 88ee8^..88e8 --이름 전용 --hostname="format:"
특정 커밋의 모든 파일을 표시하는 방법이 몇 가지 있습니다.
정보를 줄이고 커밋된 파일의 이름만 표시하려면 간단히 추가할 수 있습니다.--name-only
또는--name-status
는 원하는 커밋과 합니다.이 플래그는 원하는 대로 이전 커밋과 다른 파일 이름을 표시합니다.
은 있다니습수를 할 수 .git diff
에 뒤에--name-only
의 커밋 됩니다.<sha0> <sha1>
다음과 같은 것이 있습니다.
git diff --name-only 5f12f15 kag9f02
또한 다음과 같은 상황에서 거쳐야 할 모든 단계를 보여주기 위해 아래 이미지를 만들었습니다.
마지막 커밋에서 파일 목록을 변경하려면 간단한 한 줄 명령을 사용합니다.
git diff HEAD~1 --name-only
git whatchanged
낮은 수준 보준수▁than보다 더 낮은 입니다.git log
NAME
git-whatchanged - Show logs with difference each commit introduces
에 있는 파일 가 추가된합니다("("", "commit summary").A
D
된 경우M
);
$ git whatchanged f31a441398fb7834fde24c5b0c2974182a431363
다음과 같은 것을 제공합니다.
commit f31a441398fb7834fde24c5b0c2974182a431363
Author: xx <xx@xx.nl>
Date: Tue Sep 29 17:23:22 2015 +0200
added fb skd and XLForm
:000000 100644 0000000... 90a20d7... A Pods/Bolts/Bolts/Common/BFCancellationToken.h
:000000 100644 0000000... b5006d0... A Pods/Bolts/Bolts/Common/BFCancellationToken.m
:000000 100644 0000000... 3e7b711... A Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.h
:000000 100644 0000000... 9c8a7ae... A Pods/Bolts/Bolts/Common/BFCancellationTokenRegistration.m
:000000 100644 0000000... bd6e7a1... A Pods/Bolts/Bolts/Common/BFCancellationTokenSource.h
:000000 100644 0000000... 947f725... A Pods/Bolts/Bolts/Common/BFCancellationTokenSource.m
:000000 100644 0000000... cf7dcdf... A Pods/Bolts/Bolts/Common/BFDefines.h
:000000 100644 0000000... 02af9ba... A Pods/Bolts/Bolts/Common/BFExecutor.h
:000000 100644 0000000... 292e27c... A Pods/Bolts/Bolts/Common/BFExecutor.m
:000000 100644 0000000... 827071d... A Pods/Bolts/Bolts/Common/BFTask.h
...
저는 이 대답이 "관련 없는 정보가 없는" 대답과 실제로 일치하지 않는다는 것을 알지만, 여전히 이 목록이 파일 이름보다 더 유용하다고 생각합니다.
병합 커밋에서 변경된 파일 목록을 가져오는 데 사용합니다.
λ git log -m -1 --name-only --pretty="format:"
configs/anotherconfig.xml
configs/configsInRepo.xml
또는
λ git log -m -1 --name-status --pretty="format:"
A configs/anotherconfig.xml
M configs/configsInRepo.xml
git show --name-only a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
이를 사용하여 두 변경 집합 사이의 수정된 파일 목록을 가져옵니다.
git diff --name-status <SHA1> <SHA2> | cut -f2
나는 사용하기를 좋아합니다.
git show --stat <SHA1>^..<SHA2>
저는 이에 대한 완벽한 답을 찾았습니다.
git show --name-status --oneline <commit-hash>
내가 알 수 있도록.
방금 수정된 파일( M)
새로 추가된 파일( A)
삭제된 파일(D)
마음에 들어요.
git diff --name-status <SHA1> <SHA1>^
로그를 표시합니다.
COMMIT
SHA-1 해시 또는 SHA-1 해시의 단축 버전은 공백(")일 수 있습니다.
git log COMMIT -1 --name-only
이렇게 하면 파일만 나열되며 추가 처리에 매우 유용합니다.
git log COMMIT -1 --name-only --pretty=format:"" | grep "[^\s]"
커밋에서 변경된 파일 나열:
git diff --name-only SHA1^ SHA1
로그 메시지, 추가 줄 바꿈 또는 기타 혼란스러운 내용은 표시되지 않습니다.이것은 현재 커밋뿐만 아니라 모든 커밋에 적용됩니다.
파일 목록만(커밋 메시지도 아님):
git show --name-only --pretty=format:
예: 편집기에서 변경된 모든 파일 열기:
git show --name-only --pretty=format: | xargs "$EDITOR"
파일 목록으로 보는 간단한 방법이 있습니다.그냥 추가:
해시 후:
git show 9d3a52c474:
그런 다음 구멍을 뚫을 수 있습니다.
git show 9d3a52c474:someDir/someOtherDir
파일을 누르면 파일의 원시 버전이 표시됩니다. 좋은 참조나 주요 코드 조각만 찾는다면 이 버전이 필요할 때가 있습니다(diff는 모든 것을 엉망으로 만들 수 있습니다).
git show 9d3a52c474:someDir/someOtherDir/somefile
이 방법의 유일한 단점은 파일 트리를 쉽게 표시하지 않는다는 것입니다.
"의 조합git show --stat
(Ryan에게 감사합니다) 그리고 몇 가지 sed 명령을 사용하면 데이터를 줄일 수 있습니다.
git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"
그러면 수정된 파일 목록만 생성됩니다.
아마도 나는 누군가 당신이 'log' 명령을 사용하여 로그 x 이전 커밋을 확대하여 영향을 받은 파일의 이름을 포함하고 마지막에 --name-only를 추가하고 싶은지 언급하지 않은 것 같습니다.
그래서:
git log -n3
마지막 3개 커밋의 마지막 댓글을 봅니다.
git log -n3 --name-only
마지막 세 번의 커밋에서 영향을 받은 주석 및 파일을 확인합니다.
커밋 트리에 있는 모든 파일 나열:
git ls-tree --name-only --full-tree a21e610
git show HEAD@{0}
저는 잘 작동합니다.
언급URL : https://stackoverflow.com/questions/424071/how-do-i-list-all-the-files-in-a-commit
'programing' 카테고리의 다른 글
인덱스 변수 없이 N번 무언가를 하는 파이썬적인 방법? (0) | 2023.06.04 |
---|---|
소스에서 R 패키지를 설치하려면 어떻게 해야 합니까? (0) | 2023.06.04 |
Android 앱이 멀티태스킹 트레이에서 중지될 때 Firebase 알림을 수신하지 않음 (0) | 2023.06.04 |
node.js에서 mongodb에 연결할 때 ECONN 거부 오류가 발생했습니다. (0) | 2023.06.04 |
알파벳 순서 대신 ggplot2 x 축을 구체적으로 어떻게 주문합니까? (0) | 2023.06.04 |