GitHub에서 리포지토리 만들기
개발 머신에 리포지토리 클론하기
ClickHouse/ 디렉터리를 생성합니다.
URL 뒤에 체크아웃할 사용자 지정 디렉터리를 지정할 수 있지만, 이 경로에 공백이 포함되지 않도록 해야 합니다. 공백이 있으면 나중에 빌드가 실패할 수 있습니다.
ClickHouse의 Git 리포지토리는 타사 라이브러리를 가져오기 위해 서브모듈을 사용합니다.
서브모듈은 기본적으로 체크아웃되지 않습니다.
다음 중 하나를 수행할 수 있습니다.
-
--recurse-submodules옵션과 함께git clone을 실행합니다. -
git clone을--recurse-submodules없이 실행한 경우, 모든 서브모듈을 명시적으로 체크아웃하려면git submodule update --init --jobs <N>을 실행합니다. (다운로드를 병렬화하려면 예를 들어<N>을12로 설정할 수 있습니다.) -
git clone을--recurse-submodules없이 실행했고, 공간을 절약하기 위해 서브모듈의 이력을 생략하는 shallow 서브모듈 체크아웃을 사용하려면./contrib/update-submodules.sh를 실행합니다. 이 방법은 CI에서 사용되지만, 서브모듈 작업이 덜 편리해지고 더 느려지므로 로컬 개발에는 권장되지 않습니다.
git submodule status를 실행합니다.
다음 오류 메시지가 표시되면
~/.ssh에 있습니다.
SSH 키를 사용하려면 GitHub 설정에 키를 업로드해야 합니다.
HTTPS를 통해 리포지토리를 클론할 수도 있습니다:
git remote 명령으로 리포지토리의 원격 주소를 바꾸고 SSH 키를 추가할 수 있습니다.
원본 ClickHouse 리포지토리 주소를 로컬 리포지토리에 추가해 그곳에서 업데이트를 가져올 수도 있습니다:
git pull upstream master를 실행해 기본 ClickHouse 리포지토리의 업데이트를 가져올 수 있습니다.
코드 작성
IDE
- CLion은 자체적으로
build경로를 만들고 빌드 유형으로debug를 자동으로 선택합니다 - 사용자가 설치한 버전이 아니라 CLion에 정의된 버전의 CMake를 사용합니다
- CLion은 빌드 작업을 실행할 때
ninja대신make를 사용합니다(정상 동작입니다)
Pull Request 만들기
문서 작성
docs/에서 mint dev 실행).
ClickHouse에 새 함수를 추가할 때는 아래 템플릿을 참고하십시오.