Skip to content

diffIndexToIndex

두 개의 인덱스(index)간의 차이를 비교(diff)해요.

시그니처

ts
class Repository {
  diffIndexToIndex(
    oldIndex: Index,
    newIndex: Index,
    options?: DiffOptions,
  ): Diff;
}

파라미터

  • oldIndexIndex

    이전 상태의 인덱스로, diff에서 "oldFile" 역할을 해요.

  • newIndexIndex

    새로운 상태의 인덱스로, diff에서 "newFile" 역할을 해요.

  • optionsnull | DiffOptions

    diff 실행 방식을 설정하는 옵션이에요.

    • contextLinesnumber

      변경된 부분 주변에서 표시할 동일한 코드 줄 개수를 설정해요. 기본값은 3이에요.

    • disablePathspecMatchboolean

      패스스펙(pathspec)을 사용할 때, 기본적으로 와일드카드(`fnmatch`)가 적용돼요. 이 옵션을 활성화하면 정확한 문자열 비교로 동작해요.

    • enableFastUntrackedDirsboolean

      기본적으로 Git은 추적되지 않은 디렉터리를 찾으면 내부 파일을 검사해요. 이 옵션을 활성화하면 이러한 검사를 생략하고, 디렉터리를 바로 "추적되지 않음" 상태로 설정해요.

    • forceBinaryboolean

      모든 파일을 바이너리 파일로 간주하고 텍스트 diff를 비활성화해요.

    • forceTextboolean

      모든 파일을 텍스트 파일로 간주하고 바이너리 속성 감지를 비활성화해요.

    • idAbbrevnumber

      OID(Object ID) 축약 길이를 설정해요. 기본값은 core.abbrev 설정값이며, 설정되지 않았을 경우 7이에요.

    • ignoreBlankLinesboolean

      빈 줄을 무시하고 diff를 수행할지 설정해요.

    • ignoreCaseboolean

      대소문자를 구분하지 않고 diff를 수행할지 설정해요.

    • ignoreFilemodeboolean

      파일 권한(mode) 변경을 무시할지 설정해요. 활성화하면 실행 권한 변경과 같은 파일 모드 변경 사항이 diff에서 제외돼요.

    • ignoreSubmodulesboolean

      모든 서브모듈을 변경되지 않은 상태로 간주할지 설정해요. 활성화하면 diff에서 서브모듈 변경 사항을 무시해요.

    • ignoreWhitespaceboolean

      모든 공백을 무시하고 diff를 수행할지 설정해요.

    • ignoreWhitespaceChangeboolean

      공백 개수 변경을 무시할지 설정해요. (예: 공백 1개 → 2개 변경은 무시되지만, 문자 변경은 감지됨)

    • ignoreWhitespaceEolboolean

      줄 끝의 공백을 무시할지 설정해요.

    • includeIgnoredboolean

      Git에서 무시(ignore)된 파일을 diff에 포함할지 설정해요.

    • includeTypechangeboolean

      파일 타입이 변경된(typechange) 항목을 diff에 포함할지 설정해요. 활성화하면, 예를 들어 파일에서 디렉터리로 변경된 경우 이를 감지할 수 있어요.

    • includeTypechangeTreesboolean

      includeTypechange가 활성화된 경우, 기본적으로 삭제된 블롭(blob)으로 표시되던 항목을 올바르게 타입 변경(typechange) 기록으로 처리해요. 이때, newFile의 모드는 트리(tree)로 설정되지만, 트리의 SHA 값은 제공되지 않아요.

    • includeUnmodifiedboolean

      변경되지 않은 파일도 diff에 포함할지 설정해요. 기본적으로 변경되지 않은 파일은 diff에서 제외돼요.

    • includeUnreadableboolean

      읽을 수 없는(unreadable) 파일을 diff에 포함할지 설정해요.

    • includeUnreadableAsUntrackedboolean

      읽을 수 없는(unreadable) 파일을 diff에서 추적되지 않은(untracked) 파일로 간주할지 설정해요.

    • includeUntrackedboolean

      추적되지 않은(untracked) 파일을 diff에 포함할지 설정해요.

    • indentHeuristicboolean

      들여쓰기와 공백을 고려하는 휴리스틱(heuristic) 알고리즘을 사용해요. 이를 활성화하면 애매한 diff 구간(hunk)에서도 더 나은 비교 결과를 얻을 수 있어요.

    • interhunkLinesnumber

      두 개의 diff 구간(hunk) 사이에 변경되지 않은 줄이 이 값보다 많으면 hunk를 하나로 병합해요. 기본값은 0이에요.

    • maxSizenumber

      이 크기(바이트 단위)보다 큰 블롭(blob)은 자동으로 바이너리로 처리돼요. 음수 값을 설정하면 이 기능을 비활성화할 수 있어요. 기본값은 512MB예요.

    • minimalboolean

      최소한의 diff를 찾기 위해 추가 연산을 수행할지 설정해요. 활성화하면 더 정확한 diff 결과를 얻을 수 있지만, 속도가 느려질 수 있어요.

    • newPrefixstring

      새로운 파일 이름 앞에 붙일 가상 디렉터리 이름을 설정해요. 기본값은 "b"예요.

    • oldPrefixstring

      이전 파일 이름 앞에 붙일 가상 디렉터리 이름을 설정해요. 기본값은 "a"예요.

    • pathspecsstring[]

      diff를 적용할 파일 경로나 fnmatch 패턴을 설정해요. 지정한 패턴과 일치하는 파일만 diff에 포함돼요.

    • patienceboolean

      "patience diff" 알고리즘을 사용할지 설정해요. 이 알고리즘은 변경된 줄을 보다 정확하게 매칭하지만, 성능이 느릴 수 있어요.

    • recurseIgnoredDirsboolean

      무시(ignore)된 디렉터리를 재귀적으로 탐색할지 설정해요. 활성화하면 내부의 파일까지 확인해요.

    • recurseUntrackedDirsboolean

      추적되지 않은(untracked) 디렉터리를 재귀적으로 탐색할지 설정해요. 활성화하면 내부의 파일까지 포함해 diff를 수행해요.

    • reverseboolean

      diff의 비교 방향을 반대로 할지 설정해요. 기본적으로 "old → new" 비교가 수행되지만, 이 옵션을 활성화하면 "new → old" 순서로 비교돼요.

    • showBinaryboolean

      diff 결과에 바이너리 파일 정보를 포함할지 설정해요.

    • showUnmodifiedboolean

      diff 결과를 생성할 때, 변경되지 않은 파일의 이름을 포함할지 설정해요. 일반적으로 파일 목록을 출력하는 형식(name-only, name-status, raw)에서는 변경되지 않은 파일이 생략돼요. 하지만 패치 형식에서는 이 옵션을 활성화해도 포함되지 않아요.

    • showUntrackedContentboolean

      패치 형식의 diff를 생성할 때, 추적되지 않은(untracked) 파일의 내용을 포함할지 설정해요. 이 옵션을 활성화하면 includeUntracked도 자동으로 활성화되지만, recurseUntrackedDirs는 활성화되지 않아요. 모든 추적되지 않은 파일의 내용을 포함하려면 recurseUntrackedDirs도 추가해야 해요.

    • skipBinaryCheckboolean

      diff에서 binary 플래그를 업데이트하지 않도록 설정해요. 이 옵션을 사용하면 diff를 반복적으로 순회할 때 파일을 완전히 로드하지 않고도 hunk와 데이터 콜백을 건너뛸 수 있어요.

    • updateIndexboolean

      작업 디렉터리의 파일이 인덱스와 다르게 변경되었지만, OID(Object ID)가 동일한 경우 인덱스의 stat 정보를 업데이트할지 설정해요. 이 옵션을 활성화하지 않으면 diff는 인덱스를 수정하지 않아요.

반환 값

  • Diff

    두 인덱스 간의 diff 결과를 반환해요.

MIT 라이선스에 따라 배포됩니다.