Git™ Version Control
개요
Git™ Version Control 기능을 이용하여 사용자는 cPanel 계정에 Git repository(저장공간)를 쉽게 호스팅할 수 있습니다. Git를 이용하여 파일 세트를 유지할 수 있습니다(예를 들어, 웹사이트의 파일과 자산, 소프트웨어 개발 프로젝트 또는 단순 텍스트 파일). 자세한 정보는 당사의 Git에 대한 가이드 - 배포 설정 방법 문서 및 Git의 문서를 읽어 보십시오.
비고:
시스템은 수신 후 후크(post-receive hook)를 모든 cPanel-관리 저장공간개요
Git™ Version Control 기능을 이용하여 사용자는 cPanel 계정에 Git repository를 쉽게 호스팅할 수 있습니다. Git를 이용하여 파일 세트를 유지할 수 있습니다(예를 들어, 웹사이트의 파일과 자산, 소프트웨어 개발 프로젝트 또는 단순 텍스트 파일). 자세한 정보는 당사의 Git에 대한 가이드 - 배포 설정 방법 문서 및 Git의 문서를 읽어 보십시오.
참고: 시스템은 수신 후 후크(post-receive hook)를 모든 cPanel-관리 리포지토리(저장공간)에 추가합니다. 자세한 정보는 Git의 githooks 문서를 읽어 보십시오.
Command의 Git
중요:
쉘 액세스(shell access) 없이, repository를 생성, 복제, 삭제 및 보기만 할 수 있습니다.
cPanel 계정에 쉘 액세스가 포함되는 경우 명령줄에서 Git도 이용할 수 있습니다. command를 이용하여 다음 작업을 수행해야 합니다.
- 개인 리포지토리를 복제하기 위한 SSH 구성. 자세한 정보는 당사의 Git에 대한 가이드 - 개인 리포지토리에 대한 액세스 설정 문서를 읽어 보십시오.
- 다수의 원격 리포지토리 이용. 고급 Git 사용자를 위해서만 이용할 것을 권장합니다.
cPanel의 터미널 인터페이스(cPanel >> 홈 >> 고급 >> 터미널)를 이용하여 cPanel 인터페이스 내에서 명령줄에 액세스할 수 있습니다.
Repository
참고:
- Repository를 복제할 때, 시스템이 완료하는데에는 많은 시간이 필요할 수 있습니다. Repository 목록은 Repository에 대한 옵션을 비활성화하고 Repository 이름, Repository 경로 및 진행 메시지만 표시합니다.
- 명령줄을 통해 Git Repository를 추가 또는 삭제하면, 이 인터페이스에서 잘못된 Repository 목록을 볼 수 있습니다. 현재,이 인터페이스에서 생성한 Repository만 목록에 나타납니다.
Repository 테이블은 계정의 모든 cPanel-관리 Git Repository에 대해 다음 정보를 나열합니다.
- 리포지토리(Repository) — Repository의 표시 이름.
- 리포지토리 경로(Repository Path) — Repository의 디렉토리.
다음 작업도 수행할 수 있습니다:
- 관리(Manage) — 클릭하여 Repository의 cPanel-관리 설정을 업데이트하거나 변경 사항을 가져오거나 배포합니다.
- 이력(History) — 클릭하여 새 브라우저 탭에서 Gitweb 인터페이스를 엽니다. Gitweb을 이용하여 Repository를 검색하고 이력과 내용을 볼 수 있습니다.
- 제거(Remove) — 클릭하여 Repository의 cPanel의 관리를 제거합니다. 확인 메시지가 나타납니다. 다시 제거를 클릭하여 Repository를 삭제합니다.
주의:
cPanel의 Repository 관리를 제거하면, 리포지토리는 인터페이스에 더 이상 나타나지 않고, 이를 배포하기 위해 cPanel 을 이용할 수 없습니다. 하지만, 시스템은 Repository 디렉토리나 그 데이터를 삭제하지 않습니다. Repository 데이터를 완전히 삭제하려면, 시스템은 Repository 디렉토리나 그 데이터를 삭제할 수 없습니다. Repository 데이터를 완전히 삭제하려면 cPanel의 파일 관리자 인터페이스(cPanel >> 홈 >> 파일 >> 파일 관리자) 또는 선호하는 방법을 이용하여 파일을 수동으로 삭제합니다.
기억하십시오:
Repository를 복제하면, 시스템은 완료하는 데 많은 시간이 걸릴 수 있습니다. Repository 목록은 Repository에 대한 옵션을 비활성화하고 Repository 이름, Repository 경로, 그리고 복제 진행 상황에 대한 메시지만 표시합니다.
Repository 생성
새 Repository를 생성하려면, 다음 단계를 수행합니다.
- 인터페이스의 우측 상단 모서리에서 생성(Create)을 클릭합니다. 새로운 인터페이스가 나타납니다.
- 기존 Repository를 복제할지, 새 Repository를 생성할지 또는 기존 Repository를 cPanel-관리 Repository 목록에 추가할지 여부를 선택합니다.
- 기존 Repository를 복제하려면, Repository 복제(Clone a Repository)토글이 활성화되어 있는지 확인합니다. 그런 다음 복제 URL 텍스트 상자에 복제할 Repository에 대한 복제URL을 입력합니다.
중요:
개별 Repository를 복제하려면 추가 단계를 수행해야 합니다. 자세한 정보는 당사의 Git에 대한 가이드 - 개별 Repository 설정하기(Set Up Access to Private Repositories) 문서를 읽어 보십시오.
- 새 Repository를 생성하거나 기존 리포지토리를 cPanel-관리Repository의 목록에 추가하려면, Repository 복제(Clone a Repository)토글을 비활성화로 설정합니다.
중요:
- 이 URL은 사용자 이름과 암호 쌍을 포함할 수 업습니다.
- 이 URL에는 http://, https://, ssh://, 또는 git:// 프로토콜을 포함하거나 user@example.com/path 형식을 이용합니다. 여기에서 , user는 사용자 이름을 나타내고, example.com 은 도메인을 나타내고, path는 리포지토리 경로를 나타냅니다.
- 로컬 Repository 경로를 입력할 수 없습니다.
- 시스템은 ssh:// 프로토콜을 이용하는 복제 URL에 대한 추가 확인을 수행합니다. 더 자세한 정보는 아래 SSH 호스트 키 검증(host key verification) 섹션을 읽어 보십시오.
- 리포지토리 경로(Repository Path)텍스트 상자에, Repository를 포함하는 디렉토리에 대한 경로를 입력합니다.
참고:
- 지정된 디렉토리가 현재 존재하지 않는 경우, 시스템은 디렉토리를 생성합니다.
- 지정된 디렉토리에 Repository가 이미 포함된 경우, 시스템은 이를 자동으로 cPanel-관리 Repository 목록에 추가합니다.
- 이 기능은 Repository 경로에 여러 개의 제약을 실행합니다. 자세한 정보는 아래 Repository 경로 제약(Repository path restrictions) 섹션을 읽어 보십시오.
- 기존 Repository를 목록에 추가하지 않는 이상, 디렉토리는 비어야 합니다. 하위 도메인에는 cgi-bin 디렉토리를 포함하고.well-known 디렉토리도 포함할 수 있습니다. Repository를 생성하기 전에 이 리포지토리를 이동해야 합니다.
- Repository 이름(Repository Name)텍스트 상자에, Repository에 대해 원하는 표시 이름을 입력합니다.
- 다른 Repository를 즉시 생성하려면, 다른 Repository 생성(Create Another) 확인란을 선택합니다.
- 생성(Create)을 클릭하거나Repository 목록으로 반환(Return to Repository List)을 클릭하여 리포지토리 목록으로 돌아갑니다.
SSH 호스트 키 검증(verification)
SSH 복제 URL을 입력하는 경우, 생성(Create)을 클릭할 때, 시스템은 원격 서버의 공공 SSH 호스트 키에 대해 자동으로 확인하게 됩니다. 시스템은 /home/user/.ssh/known_hosts 파일에 이 키를 저장합니다. 여기에서, user 는 사용자 이름을 나타냅니다.
- 원격 호스트가 시스템에 등록되어 있지 않으면, 저장하고 계속(Save and Continue)을 클릭하여 파일에 추가합니다(등록합니다). 호스트 식별 정보 표시(Show Host Identification Information)를 클릭하여 호스트의 알고리즘과 SHA-256 및 MD5 지문(fingerprints)을 봅니다.
- 원격 호스트가 이미 등록되어 있는 경우, 시스템은 Repository를 생성합니다.
- 원격 호스트의 공공 키가 변경된 경우, 시스템은 경고를 표시합니다.
- 제 3자 원격 호스트의 경우, 공공 키 업데이트에 대한 공지(announcements)를 확인합니다. Repository를 호스팅하는 많은 회사는 이러한 변경 사항에 대해 공지합니다.
- 제어한 원격 호스트의 경우, 시스템의 최근 이벤트가 공공 키에 대한 변경을 초래했는지 고려하거나 시스템 관리자에게 문의하십시오.
시스템은 이 확인도 수행하고 Repository 정보를 변경하거나 업데이트할 때 변경된 호스트 키의 검증을 요청할 것입니다.
경고:
변경의 유효성을 검증할 수 없는 경우, 특히 Repository에 민감 컨텐츠가 포함된 경우에는 주의해야 합니다. 변경된 SSH 키는 Man-in-the-Middle attack을 나타낼 수 있습니다.
Repository 경로 제약(Repository path restrictions)
이 기능은 Repository 경로에 대해 여러 개의 제약을 실행합니다.
.git 디렉토리
경고:
Repository의.git 디렉토리나 컨텐츠를 수정 또는 삭제하지 마십시오. 이 데이터에 대한 수정은Repository를 복구 불가능하게 손상시킬 수 있습니다.
시스템은 Repository의 .git 디렉토리에 대한 공공 액세스를 글로벌 차원으로 거부합니다.
문제 제한
공백 또는 다음 문자 중 하나가 포함된 경로로 리포지토리를 생성, 삭제 또는 볼 수 없습니다.
\ * | " ' < > & @ ` $ { } [ ] ( ) ; ? : = % #`
cPanel-제어 디렉토리
다음 디렉토리에서는 Repository를 생성, 삭제 또는 볼 수 없습니다.
- .cpanel
- .trash
- etc
- ssl
- tmp
- logs
- .cphorde
- spamassassin
- .htpasswds
- var
- cgi-bin
- .ssh
- perl5
- access-logs
Repository 관리
관리(Manage)를 클릭하여 리포지토리를 수정 또는 배포합니다. 기본 정보(Basic Information)를 클릭하여 리포지토리 정보를 보거나, 풀 또는 배포(Pull or Deploy)를 클릭하여 변경 사항을 가져오거나 배포합니다.
- 리포지토리 경로(Repository Path)— Repository의 디렉토리. 클릭하여 새로운 브라우저 탭에서 cPanel의 파일 관리자 인터페이스(cPanel >> 홈 >> 파일 >> 파일 관리자)에서 Repository에 대한 디렉토리를 엽니다.
- 리포지토리 이름(Repository Name)— Repository의 표시 이름. 이 이름을 수정하려면 새로운 이름을 입력한 다음 업데이트를 클릭합니다.
- 체크 아웃 브랜치(Checked-Out Branch)— 현재 체크아웃된 로컬 브랜치. 다른 브랜치를 체크아웃하려면 원하는 브랜치를 선택하고 업데이트를 클릭합니다.
- 다른 브랜치를 선택하면, 시스템은 해당 브랜치를 체크아웃할 때 원격 Repository에서 변경 사항을 Repository로 자동으로 가져옵니다.
- Repository가 텅 빈 리포지토리인 경우, 시스템은 이 정보를 표시하지 않습니다.
- 현재 체크아웃된 브랜치(Currently Checked-Out Branch)— 현재 체크 아웃된 로컬 브랜치. 클릭하여 Gitweb 인터페이스를 새 브라우저 탭에서 엽니다.
- HEAD 커밋(Commit)— 인터페이스의 이 섹션은 활성 브랜치의 HEAD 커밋(브랜치에 대한 가장 최근의 커밋)에 대한 정보를 표시합니다. 리포지토리에 현재 브랜치에 대한 커밋이 포함되지 않거나 텅 빈 리포지토리인 경우, 시스템은 HEAD 커밋 정보를 표시하지 않습니다. 이력(History)을 클릭하여 새 브라우저 탭에 Gitweb 인터페이스를 엽니다.
- 커밋(Commit) — HEAD 커밋에 대한 SHA-1 값.
- 작성자(Author) — HEAD 커밋의 작성자.
- 날짜(Date) — HEAD 커밋의 날짜.
- HEAD 커밋에 대한 커밋 메시지t.
- 원격 URL — Repository의 원격 Repository의 URL.
- 복제 URL(Clone URL) — Repository를 다른 위치에 복제하는 데 사용할 URL (예를 들어, 로컬 컴퓨터, 다른 cPanel 계정, 또는 GitHub 계정). 복사(Copy)를 클릭하여 이 URL을 클립보드에 복사합니다.
- 리포지토리 경로(Repository Path) — Repository의 디렉토리. 클릭하여 cPanel의 파일 관리자 인터페이스 (cPanel >> 홈 >> 파일 >> 파일 관리자)에 Repository에 대한 디렉토리를 새 브라우저 탭에서 엽니다.
중요:
기존 Repository에 대해 리포지토리 경로를 수정할 수 없습니다.
- 리포지토리 이름(Repository Name)— Repository의 표시 이름. 이 이름을 수정하려면 새 이름을 입력하고 업데이트를 클릭합니다.
- 현재 확인된 브랜치(Currently Checked-Out Branch)— 현재 확인된 로컬 브랜치. 클릭하여 새 브라우저 탭에서 Gitweb 인터페이스를 엽니다.
비고:
Repository가 텅 빈 리포지토리(bare repository)인 경우, 시스템은 이 정보를 표시하지 않습니다.
- HEAD 커밋(Commit)— 인터페이스의 이 섹션은 활성 브랜치의 HEAD 커밋(브랜치에 대한 가장 최근 커밋)에 대해 다음 정보를 표시합니다.
- 커밋(Commit) — HEAD 커밋에 대한 SHA-1 값.
- 작성자(Author) — HEAD 커밋의 작성자(author)
- 날짜(Date) —HEAD 커밋의 날짜
- HEAD 커밋의 커밋 메시지
참고:
Repository에 현재 브랜치에 대한 커밋이 포함되지 않거나 텅 빈 Repository인 경우, 시스템은 이 정보를 표시합니다.
- 최신 배포 정보(Last Deployment Information)— 인터페이스의 이 섹션은 Repository의 가장 최근의 배포에 대해 다음 정보를 표시합니다.
- 마지막 배포일(Last Deployed on) — 배포일.
- 마지막 배포된 SHA(Last Deployed SHA) — 배포된 커밋에 대한 SHA-1 값.
- 작성자(Author) — 배포된 커밋의 작성자.
- 날짜(Date) — 배포된 커밋 날자.
- 배포된 커밋에 대한 커밋 메시지.
- 원격에서 업데이트(Update from Remote)— 클릭하여 원격 Repository에서 변경 사항을 가져와서 Repository의 cPanel-관리 카피에 적용합니다. 시스템은 the --ff-only 옵션 으로 변경 사항을 가져오고 브랜치의 HEAD 커밋이 최신이거나 Git가 앞으로 빨리 당길 수 있는 경우(fast forward)에만 성공할 것입니다.
- 원격 URL(Remote URL)— Repository의 원격 URL
- HEAD 커밋 배포(Deploy HEAD Commit)— 클릭하여 cPanel-관리 Repository에서 변경 사항을 배포합니다. 배포에는.cpanel.yml 파일과 최소한 하나의 로컬 또는 원격 브랜치가 필요합니다.
- 시스템은 Repository를 배포하기 위해.cpanel.yml 파일에 구성하는 작업을 실행합니다.
- cPanel-관리 Repository가 아니라 원격 Repository에.cpanel.yml 파일을 체크인할 것을 강력히 권장합니다.
- 시스템은 지저분한 작업 트리를 가진 Repository에 대한 변경 사항을 배포할 수 없습니다.
배치에 대한 자세한 정보는 당사의 Git에 대한 가이드 - 배포(Deployment) 및 Git에 대한 가이드 - 배포 설정 방법 문서를 읽어 보십시오.
원본보기 : Git™ Version Control