merge
주어진 커밋을 HEAD에 병합하고 결과를 작업 디렉토리에 써요. 모든 변경사항은 커밋을 위해 스테이징되고 모든 충돌은 인덱스에 기록돼요. 호출자는 이 작업이 완료된 후 리포지토리의 인덱스를 검사하고, 충돌을 해결하고, 커밋을 준비해야 해요.
git과의 호환성을 위해 리포지토리는 병합 상태가 돼요. 커밋이 완료되면 (또는 사용자가 중단하려는 경우) cleanupState()
를 호출하여 이 상태를 지워야 해요.
시그니처
class Repository {
merge(
annotatedCommits: AnnotatedCommit[],
mergeOptions?: MergeOptions | undefined | null,
checkoutOptions?: CheckoutOptions | undefined | null,
): void;
}
파라미터
- annotatedCommits필수 · AnnotatedCommit[]
병합할 커밋
- mergeOptionsnull | MergeOptions
병합 옵션
- diff3Styleboolean
diff3 스타일 파일 생성
- failOnConflictboolean
충돌이 발생하면 충돌 해결을 계속 시도하는 대신 즉시 종료
- filFavorFileFavor
충돌 해결을 위해 선호할 측면 지정
- findRenamesboolean
파일 이름 변경 감지
- ignoreWhitespaceboolean
모든 공백 무시
- ignoreWhitespaceChangeboolean
공백 양의 변경 무시
- ignoreWhitespaceEolboolean
줄 끝의 공백 무시
- minimalboolean
최소 diff를 찾기 위해 추가 시간 사용
- noRecursiveboolean
병합되는 커밋에 여러 병합 베이스가 있는 경우, (여러 병합 베이스를 병합하여) 재귀적 병합 베이스를 구축하지 않고 단순히 첫 번째 베이스를 사용
- patienceboolean
"patience diff" 알고리즘 사용
- recursionLimitnumber
크리스크로스 병합에 직면했을 때 가상 병합 베이스를 구축하기 위해 공통 조상을 병합하는 최대 횟수. 이 제한에 도달하면 다음 조상을 병합하려고 시도하는 대신 단순히 사용. 기본값은 무제한
- renameThresholdnumber
파일 이름이 변경된 것으로 간주할 유사성 (기본값 50)
- simplifyAlnumboolean
단순화된 diff 파일을 위해 비영숫자 영역 압축
- skipReucboolean
생성된 인덱스에 REUC 확장을 쓰지 않음
- standardStyleboolean
표준 충돌 병합 파일 생성
- targetLimitnumber
이름 변경을 위해 검사할 최대 유사성 소스 (기본값 200). 이름 변경 후보(추가/삭제 쌍)의 수가 이 값보다 크면 부정확한 이름 변경 감지가 중단됨. 이 설정은
merge.renameLimit
구성 값을 재정의
- diff3Styleboolean
- checkoutOptionsnull | CheckoutOptions
체크아웃 옵션
- allowConflictsboolean
안전 모드에서 체크아웃을 취소하는 대신 충돌이 있더라도 안전한 파일 업데이트를 적용. 기본값은 false
- ancestorLabelstring
충돌의 공통 조상 측면 이름
- conflictStyleDiff3boolean
충돌에 대한 diff3 형식 파일에 공통 조상 데이터를 포함할지 여부를 나타냄. 기본값은 false
- conflictStyleMergeboolean
충돌에 대해 일반 병합 파일을 작성해야 하는지 나타냄. 기본값은 false
- dirPermnumber
새 디렉토리가 생성되는 모드 설정. 기본값은 0755
- disableFiltersboolean
CRLF 변환과 같은 필터를 적용할지 여부를 나타냄
- disablePathspecMatchboolean
path
에 지정된 경로를 pathspec이 아닌 정확한 파일 경로로 처리 - dryRunboolean
이 체크아웃이 충돌을 확인하지만 실제 변경은 하지 않는 드라이런을 수행해야 함을 나타냄
- filePermnumber
새 파일이 생성되는 모드 설정. 기본값은 blob에 의해 지정된 0644 또는 0755
- forceboolean
수정된 파일을 잠재적으로 삭제하는 것을 포함하여 작업 디렉토리를 대상과 일치시키기 위해 필요한 모든 조치를 취함
- ourLabelstring
충돌의 우리 측면 이름
- overwriteIgnoredboolean
체크아웃 중에 무시된 파일을 덮어써야 하는지 나타냄. 기본값은 true
- pathstring
체크아웃할 경로 추가. 경로는
disablePathspecMatch
가 설정되지 않는 한 <a href="https://git-scm.com/docs/gitglossary.html#Documentation/gitglossary.txt-aiddefpathspecapathspec">pathspec</a> 패턴. 경로가 지정되지 않으면 모든 파일이 체크아웃됨. 그렇지 않으면 지정된 경로만 체크아웃됨 - recreateMissingboolean
안전 모드에서 존재하지 않는 파일 생성. 기본값은 false
- refreshboolean
작업 전에 인덱스와 git 속성을 디스크에서 새로 고쳐야 하는지 나타냄. 기본값은 true
- removeIgnoredboolean
작업 디렉토리에서 무시된 파일 제거. 기본값은 false
- removeUntrackedboolean
작업 디렉토리에서 추적되지 않은 파일 제거. 기본값은 false
- safeboolean
체크아웃이 안전하게 수행되어야 함을 나타냄. 새 파일 생성은 허용하지만 기존 파일이나 변경사항을 덮어쓰지 않음. 이것이 기본값
- skipUnmergedboolean
병합되지 않은 인덱스 항목이 있는 파일 건너뛰기. 기본값은 false
- targetDirstring
체크아웃할 디렉토리 설정
- theirLabelstring
충돌의 그들 측면 이름
- updateIndexboolean
체크아웃이 업데이트된 파일의 정보를 인덱스에 쓰는 것을 방지. 기본값은 true
- updateOnlyboolean
이미 존재하는 파일의 내용만 업데이트. 설정되면 파일이 생성되거나 삭제되지 않음. 기본값은 false
- useOursboolean
체크아웃이 파일의 스테이지 2 버전("우리 것")을 사용하여 충돌을 진행해야 하는지 나타냄. 기본값은 false
- useTheirsboolean
체크아웃이 파일의 스테이지 3 버전("그들 것")을 사용하여 충돌을 진행해야 하는지 나타냄. 기본값은 false
- allowConflictsboolean