Git : 1. 브랜치의 모든 파일 나열, 2. 다른 브랜치의 파일 비교


89
  1. 커밋 / 브랜치의 모든 파일을 나열 할 수있는 ls -R또는 같은 명령을 dir/s찾습니다.
  2. 서로 다른 지점의 두 파일을 비교할 수있는 명령이 있습니까?

답변:


136
  1. git ls-tree -r --name-only <commit>(대신에 <commit>있을 수있는 곳 <branch>). 하위 디렉토리로 내려 가기 전에 하위 디렉토리를 나열하는 옵션
    도 사용할 수 있습니다.-t
  2. git diff <branchA>:<fileA> <branchB>:<fileB>,
    또는 동일한 파일을 비교하려는 경우git diff <branchA> <branchB> -- <file>

4
특정 디렉토리를 나열하려면 콜론 다음에 브랜치 경로를 추가 할 수 있습니다. 예 : git ls-tree -r --name-only master : directory / path / name
miller the gorilla

25

새 분기에 추가 된 모든 파일을 나열하려면

git diff --name-only branch1 master

4
여기에는 새 파일뿐만 아니라 변경된 모든 파일의 이름 만 나열됩니다.
Meredith

25

다른 브랜치의 동일한 파일을 비교하려면 :

git diff branch_1..branch_2 file.txt

트리 개체의 모든 파일을 나열하려면 :

git ls-tree -r branch

"git : 'ls'는 git 명령이 아닙니다. 'git --help'를 참조하십시오." git v 2.19.0을 사용하고 있습니다.
Andrew S

1
그냥 아니에요 ls, 당신은 잊어 버린 -tree:) 끝에
댄 Loewenherz에게

아,리스트 리라고 생각했습니다. 나는 -tree가 스위치라고 생각했습니다. 감사.
Andrew S

2

Git v2.1.0부터 [08/15/14]

나열 git ls-files을 위해 현재 색인 / 작업 디렉토리에있는 모든 파일을 재귀 적으로 나열 하는 데 사용할 수 있습니다 . 당신은 참조 할 수 있습니다 힘내-SCM 문서 / 자식-LS-파일 또는 입력 man git-ls-files설치 한 경우 힘내과 사람 페이지를 사용할 수 있습니다.

이 같은 다른 방법으로 파일을 표시하도록 좋은 옵션이 있습니다 cached, staged, deleted, modified, ignored또는 others에 대한 비 추적. 일치하는 패턴도 지원합니다. 또한 갖는 --debug인수를 쉽게 표시 할 수 있습니다 creation time, modification time, inode id, owner & group id, sizeflags파일.


두 가지의 차이점은 git diff <branch> <other branch>다른 답변에 명시된 것처럼 사용하십시오 .


2

분기의 파일 나열 git ls-files

  1. 시도 git ls-files에 설명 자식-SCM의 다큐 :
# Switch to <branch> of interest
$ git checkout <branch>
# List all files in <branch>
$ git ls-files

추가 옵션은 문서를 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.