programing

특정 디렉토리에서 어떻게 'git diff'를 합니까?

muds 2023. 6. 20. 21:52
반응형

특정 디렉토리에서 어떻게 'git diff'를 합니까?

git diff실제로 모든 소스 코드에서 차이를 실행합니다.특정 디렉터리에서 이 작업을 수행하여 디렉터리 아래에 있는 파일의 수정 내용을 볼 수 있습니다.

경로(이 경우 내 폴더)를 제공하고 다음을 실행합니다.

git diff myfolder/

다분기비는경다우음사합니다야용해을교하를른합다니▁if▁to▁you▁use,▁different▁need--파일 시스템 경로에서 Git 버전을 분리합니다.를 들어,두 개의 가 있는 경우, 예를들어로, 개컬분있는가경우기두의▁for.master그리고.bryan-working:

$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/

또는 로컬 지점에서 원격 지점으로:

$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/

제가 찾고 있던 것은 다음과 같습니다.

git diff <ref1>..<ref2> <dirname>

경로를 추가할 수 있을 뿐만 아니라 추가하여 해당 폴더와 관련된 결과를 얻을 수도 있습니다.

git -C a/folder diff --relative

2과 "Git 2.28(2020년 3분기의 명령어는 "Git 2.28"입니다.diff을들은기 " 족릴줄알았니다습가."을다▁the▁learned▁"니가▁family▁to"를 존중하는 법을 .diff.relative구성 변수입니다.

로랑 아르누드()spk의 commit c28d8 (2020년 5월 22일) 참조.
(주니오 C 하마노에 의해 합병 -- -- 위원회 34df9a, 2020년 6월 2일)

diff구성 추가 옵션relative

사인 오프 바이: 로랑 아르누드
아케이드: 도안 쩐 콩 단

diff.relative 옵션이 " " " 로 되었습니다.true에는 " " " " " "/ " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "pathrelative앞에서 언급한 디렉터리와 관련된 경로 이름을 표시합니다.

가르치다--no-relative앞에서 무시하기 위해--relative

git-format-patch(1)에 합니다.--relative그리고.--no-relative

이제 설명서에는 다음이 포함됩니다.

diff.relative:

'로 설정된 경우true', 'git diff디렉터리 외부의 변경 내용을 표시하지 않으며 현재 디렉터리와 관련된 경로 이름을 표시합니다.


경고: Git 2.34 (Q4 2021) 이전에는 git diff --relative(man)"" 통합되지 않은 경로가 있을 때 결함이 있거나 잘못된 결과가 생성되었습니다.

도안 쩐 콩 sgn()의 커밋 8174627(2021년 8월 22일)을 참조하십시오.
(주니오 C 하마노에 의해 합병 -- -- commit c8f4916, 2021년 9월 8일)

diff-lib--cwd가 요청된 경우 $cwd를 벗어난 경로 무시

보고된 사용자:토마스 드 주
테스트바이: 카를로 아레나스
사인 오프 바이: 도안 쩐 콩 단

명령어의 diff가 있을 경우 일부 하도록 할 수 .--relative요청합니다.

diff_unmerge(),NULL되므로, 우리는 "" "" "" "" "" "" "" "" "" ""와 .NULL 취소조에서 포인터 참조 run_diff_files반환 값의 참조를 해제하려고 할 때.

의 값 을 확 중 는의 diff_unmerge참조를 취소하는 것만으로는 충분하지 않습니다.
Diff 엔진은 나중에 이러한 경로 사양에서 작업을 시도할 것입니다.

대신, 테스트하지 않은 항목에 대해 다르게 실행하지 맙시다.
부작용으로, 그렇게 건너뛰면 CPU 사이클을 절약할 수 있습니다.

Beyond Compare를 Git의 diff 도구로 추가하고 diffdir의 별칭을 다음과 같이 추가합니다.

git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"

Gitdiff를 다음과 같이 가져옵니다.

git diffdir 4bc7ba80edf6  7f566710c7

참조:전체 디렉토리 비교 - wit diff 툴 + 비교 이상

당신은 이런 것들을 위해 문서를 보는 습관을 가져야 합니다.그것은 매우 유용하고 여러분의 기술을 매우 빠르게 향상시킬 것입니다.여기 당신이 할 때 관련된 부분이 있습니다.git help diff

   git diff [options] [--no-index] [--] <path> <path>

더투<path>s는 해당 디렉터리로 변경해야 하는 항목입니다.

하위 디렉터리를 제외하려면 다음을 사용할 수 있습니다.

git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)

Beyond Compare를 디렉토리 diff 도구로 사용하려면 다음과 같은 기호 링크를 사용하도록 설정하십시오.

폴더 비교 보기 → 규칙(참조 아이콘)에서 다음을 수행합니다.

Enter image description here

그런 다음 기호 링크를 따르고 세션 기본값을 업데이트합니다.

Enter image description here


OR,

다음과 같이 별칭을 설정합니다.

git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"

두 경우 모두 현재 작업 트리를 참조하는 측면(왼쪽 또는 오른쪽)의 편집 내용이 유지됩니다.

diff 도구를 설치하고 구성한 경우(예: kdiff3)

git difftool -d  branch1 branch2 /path/to/dir/

두 가지 분기를 비교하면 다음과 같습니다.

git diff HEAD branchX path/to/my/folder

언급URL : https://stackoverflow.com/questions/8382019/how-do-i-git-diff-on-a-certain-directory

반응형