답변:
git diff --name-only SHA1 SHA2
커밋을 식별하기에 충분한 SHA 만 포함하면됩니다. 예를 들어
git diff --name-only HEAD~10 HEAD~5
10 번째 최신 커밋과 5 번째 최신 커밋의 차이점을 확인하십시오.
git show --name-only SHA1
.
git diff --name-status [TAG|SHA1]
어떤 작업을 보여줍니다 너무 파일에 수행 한
git diff --name-status
추가 된 파일을 표시하지 않으려는 것 같습니다. @ sschuberth 지적 git show
, 그것은 제대로 작동하는 것 같습니다 : git show --pretty=format: --name-status
. 그냥 git show --name-status
좀 더 많은 정보를 제공하지만, 여전히 멋지고 조밀 한 ... 그것은 나의 새로운 goto 명령이 될 것입니다;)
git diff --name-status [SHA1 [SHA2]]
파일에 어떤 일이 일어 났는지 알려주는 간단한 접두사를 얻는다는 점을 제외하고 --name-only와 같습니다.
git log --name-status --oneline [SHA1..SHA2]
비슷하지만 커밋 메시지 뒤에 커밋이 나열되므로 파일이 변경된시기를 확인할 수 있습니다.
특정 파일에 무슨 일이 있었 단지에 관심이 있다면 / 폴더 당신은 추가 할 수 있습니다 -- <filename> [<filename>...]
받는 git log
버전.
단일 커밋에 무슨 일이 있었는지 보려면 SHA1이라고 부르고
git log --name-status --oneline [SHA1^..SHA1]
파일 상태 플래그 :
M 수정 - 파일이 수정 된
C 복사 - 편집 - 파일 복사 및 수정 된
R 이름 변경 - 편집 - 파일의 이름을 변경하고 수정 된
A가 추가 - 파일이 추가 된
D 삭제 - 파일이었다가 삭제
U는 병합 - 병합 후 파일 충돌
--relative[=<path>]
옵션은 잘 모르겠어요, 당신이 도움이 될 수 있습니다. 그렇지 않으면 항상있다 | erep -v '(.tmp|.foo|.dontwant)$'
...
아무도 스위치를 언급하지 않은 것 같습니다 --stat
.
$ git diff --stat HEAD~5 HEAD
.../java/org/apache/calcite/rex/RexSimplify.java | 50 +++++++++++++++++-----
.../apache/calcite/sql/fun/SqlTrimFunction.java | 2 +-
.../apache/calcite/sql2rel/SqlToRelConverter.java | 16 +++++++
.../org/apache/calcite/util/SaffronProperties.java | 19 ++++----
.../org/apache/calcite/test/RexProgramTest.java | 24 +++++++++++
.../apache/calcite/test/SqlToRelConverterTest.java | 8 ++++
.../apache/calcite/test/SqlToRelConverterTest.xml | 15 +++++++
pom.xml | 2 +-
.../apache/calcite/adapter/spark/SparkRules.java | 7 +--
9 files changed, 117 insertions(+), 26 deletions(-)
또한있다 --numstat
$ git diff --numstat HEAD~5 HEAD
40 10 core/src/main/java/org/apache/calcite/rex/RexSimplify.java
1 1 core/src/main/java/org/apache/calcite/sql/fun/SqlTrimFunction.java
16 0 core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
8 11 core/src/main/java/org/apache/calcite/util/SaffronProperties.java
24 0 core/src/test/java/org/apache/calcite/test/RexProgramTest.java
8 0 core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
15 0 core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
1 1 pom.xml
4 3 spark/src/main/java/org/apache/calcite/adapter/spark/SparkRules.java
과 --shortstat
$ git diff --shortstat HEAD~5 HEAD
9 files changed, 117 insertions(+), 26 deletions(-)
그러나 브랜치와 공통 브랜치 사이에서 다른 브랜치 (예 : 출발지 / 마스터)와 파일이 변경된 것을 보려면 다음을 수행하십시오.
git diff --name-only `git merge-base origin/master HEAD`
git diffstatus master
위와 같은 말을 하거나 비슷한 말을 할 수 있기를 바랍니다 .
git show --pretty=format: --name-only origin/master..
.
git diff --name-only master..branch
이 github PR 목록에 해당하지 않습니다. 이 방법이 더 정확합니다. 그러나 어쨌든 나는 github PR에서 173 개의 chaned 파일 대 171을 가지고 있습니다. ( merge-base
내가 228 대 171이 없음)
두 분기 사이에서 변경된 파일을 표시하려면 @artfulrobot의 답변을 보완하십시오.
git diff --name-status mybranch..myotherbranch
우선 순위에주의하십시오. 최신 분기를 먼저 배치하면 파일이 추가되지 않고 삭제 된 것으로 표시됩니다.
를 추가하면 grep
더 구체화 할 수 있습니다.
git diff --name-status mybranch..myotherbranch | grep "A\t"
그러면에 추가 된 파일 만 표시됩니다 myotherbranch
.
--diff-filter
기본적으로이 기능을 제공하는 잘못된 결과 (예 : 오 탐지)를 줄일 수있는 기능 도 있습니다.
아래에 별칭을 추가 ~/.bash_profile
한 다음 실행하십시오. source ~/.bash_profile
; 이제 마지막 커밋에서 업데이트 된 파일을 볼 필요가있을 때마다 showfiles
git 저장소에서 실행 하십시오.
alias showfiles='git show --pretty="format:" --name-only'
git config --global alias.showfiles 'show --pretty="format:" --name-only'
만들기 위해 git showfiles
.
을 바탕으로 git diff --name-status
내가 쓴 자식-diffview의 두 경로 사이에 변경 어떤 계층 트리 뷰를 렌더링 자식 확장을.