다음 함수는 @bazel_tools//tools/build_defs/repo:git.bzl에서 로드할 수 있습니다.
외부 Git 저장소를 클론하기 위한 규칙입니다.
git_repository
load("@bazel//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args,
               patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches,
               recursive_init_submodules, remote, remote_module_file_integrity,
               remote_module_file_urls, shallow_since, sparse_checkout_file, sparse_checkout_patterns,
               strip_prefix, tag, verbose, workspace_file, workspace_file_content)
외부 git 저장소를 클론합니다.
Git 저장소를 클론하고 지정된 태그 또는 커밋을 체크아웃하며 바인딩할 수 있는 타겟을 만듭니다. 실제로 체크아웃된 커밋의 ID와 날짜도 확인하고 이 규칙의 재현 가능한 버전을 제공하는 매개변수가 포함된 dict를 반환합니다 (태그가 반드시 그런 것은 아님).
Bazel은 먼저 지정된 커밋만 얕게 가져오려고 시도합니다. 이 작업이 실패하면 (일반적으로 서버 지원이 누락되어) 저장소의 전체 가져오기로 대체됩니다.
git_repository보다 http_archive을 선호합니다.
이유는 다음과 같습니다.
- Git 저장소 규칙은 시스템 
git(1)에 종속되는 반면 HTTP 다운로더는 Bazel에 내장되어 있으며 시스템 종속 항목이 없습니다. http_archive은urls목록을 미러로 지원하고git_repository은 단일remote만 지원합니다.http_archive는 저장소 캐시와 함께 작동하지만git_repository와는 함께 작동하지 않습니다. 자세한 내용은 #5116을 참고하세요.
ATTRIBUTES
name | 
이름: 필수
 이 저장소의 고유한 이름입니다.  | 
branch | 
문자열, 선택사항
 체크아웃할 원격 저장소의 브랜치입니다. 브랜치, 태그 또는 커밋 중 하나를 정확하게 지정해야 합니다.  | 
build_file | 
라벨: 선택사항
 이 저장소의 BUILD 파일로 사용할 파일입니다. 이 속성은 절대 라벨입니다 (기본 저장소에는 '@//' 사용). 파일 이름이 BUILD일 필요는 없지만 BUILD일 수도 있습니다 (예를 들어 저장소의 실제 BUILD 파일과 구분하기 위해 BUILD.new-repo-name과 같은 이름을 사용할 수 있음).  | 
build_file_content | 
문자열, 선택사항
 이 저장소의 BUILD 파일 콘텐츠입니다.  | 
commit | 
문자열, 선택사항
 체크아웃할 특정 커밋입니다. 브랜치, 태그 또는 커밋 중 하나를 정확하게 지정해야 합니다.  | 
init_submodules | 
불리언, 선택사항
 저장소에서 하위 모듈을 클론할지 여부입니다.  | 
patch_args | 
문자열 목록, 선택사항
 패치 도구에 제공된 인수입니다. 기본값은 -p0 (patch_strip 속성 참고)이지만 일반적으로 git에서 생성된 패치에는 -p1이 필요합니다. -p 인수가 여러 개 지정되면 마지막 인수가 적용됩니다. -p 이외의 인수가 지정되면 Bazel은 Bazel 네이티브 패치 구현 대신 패치 명령줄 도구를 사용하도록 대체됩니다. 패치 명령줄 도구로 대체되고 patch_tool 속성이 지정되지 않은 경우 `patch` 가 사용됩니다.  | 
patch_cmds | 
문자열 목록, 선택사항
 패치가 적용된 후 Linux/Macos에 적용할 Bash 명령어 시퀀스입니다.  | 
patch_cmds_win | 
문자열 목록, 선택사항
 패치가 적용된 후 Windows에 적용할 PowerShell 명령어 시퀀스입니다. 이 속성이 설정되지 않으면 Windows에서 patch_cmds가 실행되므로 Bash 바이너리가 있어야 합니다.  | 
patch_strip | 
정수, 선택사항
 `N`으로 설정하면 `patch_args` 시작 부분에 `-pN`을 삽입하는 것과 같습니다.  | 
patch_tool | 
문자열, 선택사항
 사용할 patch(1) 유틸리티입니다. 이를 지정하면 Bazel은 Bazel 네이티브 패치 구현 대신 지정된 패치 도구를 사용합니다.  | 
patches | 
라벨 목록(선택사항)
 보관 파일을 추출한 후 패치로 적용할 파일 목록입니다. 기본적으로 퍼지 일치 및 바이너리 패치를 지원하지 않는 Bazel 네이티브 패치 구현을 사용하지만 `patch_tool` 속성이 지정되거나 `patch_args` 속성에 `-p` 이외의 인수가 있는 경우 Bazel은 패치 명령줄 도구를 사용하도록 대체됩니다.  | 
recursive_init_submodules | 
불리언, 선택사항
 저장소에서 하위 모듈을 재귀적으로 클론할지 여부입니다.  | 
remote | 
문자열, 필수
 원격 Git 저장소의 URI  | 
remote_module_file_integrity | 
문자열, 선택사항
 내부 전용입니다.  | 
remote_module_file_urls | 
문자열 목록, 선택사항
 내부 전용입니다.  | 
shallow_since | 
문자열, 선택사항
 지정된 커밋 이후가 아닌 선택적 날짜입니다. 태그나 브랜치가 지정된 경우에는 인수가 허용되지 않습니다 (항상 --depth=1로 클론할 수 있음). 지정된 커밋에 가까운 날짜를 설정하면 서버가 임의 커밋의 얕은 가져오기를 지원하지 않더라도 저장소의 얕은 클론이 허용될 수 있습니다. git의 --shallow-since 구현에 버그가 있으므로 이 속성을 사용하면 가져오기 실패가 발생할 수 있으므로 권장되지 않습니다.  | 
sparse_checkout_file | 
라벨: 선택사항
 이 저장소의 파일의 스파스 체크아웃을 위한 .gitignore 스타일 패턴이 포함된 파일입니다. `sparse_checkout_patterns` 또는 `sparse_checkout_file` 을 지정하거나 둘 다 지정하지 않을 수 있지만 둘 다 지정할 수는 없습니다.  | 
sparse_checkout_patterns | 
문자열 목록, 선택사항
 이 저장소의 파일의 스파스 체크아웃을 위한 패턴 시퀀스입니다.  | 
strip_prefix | 
문자열, 선택사항
 압축 해제된 파일에서 삭제할 디렉터리 접두사입니다.  | 
tag | 
문자열, 선택사항
 원격 저장소의 태그를 체크아웃합니다. 브랜치, 태그 또는 커밋 중 하나를 정확하게 지정해야 합니다.  | 
verbose | 
불리언, 선택사항 | 
workspace_file | 
라벨: 선택사항
 작업 없음 속성입니다. 사용하지 마세요.  | 
workspace_file_content | 
문자열, 선택사항
 작업 없음 속성입니다. 사용하지 마세요.  | 
new_git_repository
load("@bazel//tools/build_defs/repo:git.bzl", "new_git_repository")
new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules,
                   patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches,
                   recursive_init_submodules, remote, remote_module_file_integrity,
                   remote_module_file_urls, shallow_since, sparse_checkout_file,
                   sparse_checkout_patterns, strip_prefix, tag, verbose, workspace_file,
                   workspace_file_content)
외부 git 저장소를 클론합니다.
Git 저장소를 클론하고 지정된 태그 또는 커밋을 체크아웃하며 바인딩할 수 있는 타겟을 만듭니다. 실제로 체크아웃된 커밋의 ID와 날짜도 확인하고 이 규칙의 재현 가능한 버전을 제공하는 매개변수가 포함된 dict를 반환합니다 (태그가 반드시 그런 것은 아님).
Bazel은 먼저 지정된 커밋만 얕게 가져오려고 시도합니다. 이 작업이 실패하면 (일반적으로 서버 지원이 누락되어) 저장소의 전체 가져오기로 대체됩니다.
git_repository보다 http_archive을 선호합니다.
이유는 다음과 같습니다.
- Git 저장소 규칙은 시스템 
git(1)에 종속되는 반면 HTTP 다운로더는 Bazel에 내장되어 있으며 시스템 종속 항목이 없습니다. http_archive은urls목록을 미러로 지원하고git_repository은 단일remote만 지원합니다.http_archive는 저장소 캐시와 함께 작동하지만git_repository와는 함께 작동하지 않습니다. 자세한 내용은 #5116을 참고하세요.
ATTRIBUTES
name | 
이름: 필수
 이 저장소의 고유한 이름입니다.  | 
branch | 
문자열, 선택사항
 체크아웃할 원격 저장소의 브랜치입니다. 브랜치, 태그 또는 커밋 중 하나를 정확하게 지정해야 합니다.  | 
build_file | 
라벨: 선택사항
 이 저장소의 BUILD 파일로 사용할 파일입니다. 이 속성은 절대 라벨입니다 (기본 저장소에는 '@//' 사용). 파일 이름이 BUILD일 필요는 없지만 BUILD일 수도 있습니다 (예를 들어 BUILD.new-repo-name은 저장소의 실제 빌드 파일과 구분하는 데 유용할 수 있음).  | 
build_file_content | 
문자열, 선택사항
 이 저장소의 BUILD 파일 콘텐츠입니다.  | 
commit | 
문자열, 선택사항
 체크아웃할 특정 커밋입니다. 브랜치, 태그 또는 커밋 중 하나를 정확하게 지정해야 합니다.  | 
init_submodules | 
불리언, 선택사항
 저장소에서 하위 모듈을 클론할지 여부입니다.  | 
patch_args | 
문자열 목록, 선택사항
 패치 도구에 제공된 인수입니다. 기본값은 -p0 (patch_strip 속성 참고)이지만 일반적으로 git에서 생성된 패치에는 -p1이 필요합니다. -p 인수가 여러 개 지정되면 마지막 인수가 적용됩니다. -p 이외의 인수가 지정되면 Bazel은 Bazel 네이티브 패치 구현 대신 패치 명령줄 도구를 사용하도록 대체됩니다. 패치 명령줄 도구로 대체되고 patch_tool 속성이 지정되지 않은 경우 `patch` 가 사용됩니다.  | 
patch_cmds | 
문자열 목록, 선택사항
 패치가 적용된 후 Linux/Macos에 적용할 Bash 명령어 시퀀스입니다.  | 
patch_cmds_win | 
문자열 목록, 선택사항
 패치가 적용된 후 Windows에 적용할 PowerShell 명령어 시퀀스입니다. 이 속성이 설정되지 않으면 Windows에서 patch_cmds가 실행되므로 Bash 바이너리가 있어야 합니다.  | 
patch_strip | 
정수, 선택사항
 `N`으로 설정하면 `patch_args` 시작 부분에 `-pN`을 삽입하는 것과 같습니다.  | 
patch_tool | 
문자열, 선택사항
 사용할 patch(1) 유틸리티입니다. 이를 지정하면 Bazel은 Bazel 네이티브 패치 구현 대신 지정된 패치 도구를 사용합니다.  | 
patches | 
라벨 목록(선택사항)
 보관 파일을 추출한 후 패치로 적용할 파일 목록입니다. 기본적으로 퍼지 일치 및 바이너리 패치를 지원하지 않는 Bazel 네이티브 패치 구현을 사용하지만 `patch_tool` 속성이 지정되거나 `patch_args` 속성에 `-p` 이외의 인수가 있는 경우 Bazel은 패치 명령줄 도구를 사용하도록 대체됩니다.  | 
recursive_init_submodules | 
불리언, 선택사항
 저장소에서 하위 모듈을 재귀적으로 클론할지 여부입니다.  | 
remote | 
문자열, 필수
 원격 Git 저장소의 URI  | 
remote_module_file_integrity | 
문자열, 선택사항
 내부 전용입니다.  | 
remote_module_file_urls | 
문자열 목록, 선택사항
 내부 전용입니다.  | 
shallow_since | 
문자열, 선택사항
 지정된 커밋 이후가 아닌 선택적 날짜입니다. 태그나 브랜치가 지정된 경우에는 인수가 허용되지 않습니다 (항상 --depth=1로 클론할 수 있음). 지정된 커밋에 가까운 날짜를 설정하면 서버가 임의 커밋의 얕은 가져오기를 지원하지 않더라도 저장소의 얕은 클론이 허용될 수 있습니다. git의 --shallow-since 구현에 버그가 있으므로 이 속성을 사용하면 가져오기 실패가 발생할 수 있으므로 권장되지 않습니다.  | 
sparse_checkout_file | 
라벨: 선택사항
 이 저장소의 파일의 스파스 체크아웃을 위한 .gitignore 스타일 패턴이 포함된 파일입니다. `sparse_checkout_patterns` 또는 `sparse_checkout_file` 을 지정하거나 둘 다 지정하지 않을 수 있지만 둘 다 지정할 수는 없습니다.  | 
sparse_checkout_patterns | 
문자열 목록, 선택사항
 이 저장소의 파일의 스파스 체크아웃을 위한 패턴 시퀀스입니다.  | 
strip_prefix | 
문자열, 선택사항
 압축 해제된 파일에서 삭제할 디렉터리 접두사입니다.  | 
tag | 
문자열, 선택사항
 원격 저장소의 태그를 체크아웃합니다. 브랜치, 태그 또는 커밋 중 하나를 정확하게 지정해야 합니다.  | 
verbose | 
불리언, 선택사항 | 
workspace_file | 
라벨: 선택사항
 작업 없음 속성입니다. 사용하지 마세요.  | 
workspace_file_content | 
문자열, 선택사항
 작업 없음 속성입니다. 사용하지 마세요.  |