index

git init

git init 명령은 현재 디렉토리에 git 리포지토리를 초기화하는 명령어이다

빈 프로젝트를 git으로 관리하기 시작하거나 이미 파일이 있는 디렉토리를 git 리포지토리로 전환할 때 주로 사용한다

.git 디렉토리를 생성하여 git의 버전 관리 기능을 활성화하고 파일의 변경 추적 및 커밋 기록이 가능해진다

git init: 현재 디렉토리에 .git 생성 및 초기화한다

git init <directory>: 지정한 디렉토리에 .git 생성 후 초기화한다

git init --bare: 워킹 디렉토리 없이.git 디렉토리의 구성 요소만 생성한다 (주로 원격 저장소처럼 사용함)

git init --initial-branch=<branch-name>: git 초기화와 함께 기본 브랜치 이름을 설정한다

git clone

git clone은 원격 리포지토리를 로컬로 복제해 작업 가능한 git 리포지토리를 만드는 명령어이다

가져오는 요소

how clone works

git clone 명령이 정상적으로 수행되면 로컬에 완전한 git 리포지토리가 생성되고 기본 브랜치가 체크아웃된 상태로 시작한다

git clone commands

git clone <repository-url>: 원격 리포지토리를 현재 디렉토리 경로에 복제한다 (리포지토리 이름으로 디렉토리 생성)

git clone <repository-url> <directory>: 지정된 디렉토리 경로에 원격 리포지토리를 복제한다

git clone --branch <branch-name> <repository-url>: 원격 리포지토리의 특정 브랜치를 현재 디렉토리 경로에 복제한다

git clone --single-branch <repository-url>: 리포지토리를 복제할 때 단일 브랜치만 가져온다

git clone --depth <n> <repository-url>: 얕은 복제(shallow clone), 전체 커밋 히스토리를 가져오지 않고 최근 n개의 커밋만 가져온다

git clone --recurse-submodules <repository-url>: 원격 리포지토리를 복제하면서 서브 모듈도 함께 초기화 및 업데이트한다

tip

대규모 리포지토리를 복제할 때--depthsingle-branch로 최소 복제하여 다운로드 속도를 개선할 수 있다

# SSH 연결 테스트
$ ssh -T git@github.com
# HTTPS GitHub PAT(Personal Access Token) 사용
$ git clone https://<username>:<token>@github.com/user/repo.git

partial clone

shallow clone