目次
1. 소개
최근 소프트웨어 개발, 연구, 개인 프로젝트에서 “Git”은 필수 도구가 되었습니다. 특히 버전 관리 시스템으로 전 세계에서 사용되는 Git은 팀 개발 및 오픈소스 프로젝트에서 코드 공유·관리에 큰 역할을 합니다. 이 기사에서는 인기 있는 Linux 배포판인 Ubuntu에서 Git 저장소를 “git clone” 명령을 사용해 복제(클론)하는 방법을 초보자도 이해하기 쉽게 설명합니다。 “git clone”은 원격 저장소(예: GitHub나 GitLab에 공개된 프로젝트)를 로컬 환경에 전체 복사할 때 사용하는 가장 기본적인 명령입니다。 Ubuntu 사용자가 “git clone”을 능숙하게 사용하게 되면 다양한 오픈소스 소프트웨어 도입 및 자신의 개발 환경 구축이 원활해집니다。 또한 팀이나 커뮤니티에의 참여도 더욱 활발해질 것입니다。 이 기사에서는 Git 설치부터 기본적인 “git clone” 사용법, 흔히 발생하는 오류에 대한 대처 방법까지 포괄적으로 소개합니다。 Ubuntu에서 처음 Git을 접하는 분은 물론, 이미 사용해 보았지만 지식을 정리하고 싶은 분들에게도 유용한 내용입니다。2. 전제 조건 및 환경 설정
Ubuntu에서 “git clone”을 사용하려면 먼저 Git 본체가 설치되어 있어야 합니다. 또한 원격 저장소에 접근하기 위한 초기 설정 및 인증 준비도 중요합니다. 이 장에서는 환경 구축 절차를 하나씩 설명합니다。2.1 Git 설치 방법
Ubuntu에서는 공식 저장소에서 쉽게 Git을 설치할 수 있습니다. 터미널을 열고 아래 명령을 순서대로 실행하세요。sudo apt update
sudo apt install git
설치가 완료되면 Git이 올바르게 도입되었는지 확인하기 위해 아래 명령으로 버전 정보를 표시해 봅시다。git --version
버전 정보가 표시되면 설치가 성공한 것입니다。2.2 사용자 이름 및 이메일 주소 설정
Git은 파일 변경 이력을 기록할 때 “누가, 언제, 무엇을 했는지”를 저장합니다. 따라서 처음 Git을 사용할 경우 사용자 이름과 이메일 주소를 설정해 두어야 합니다。git config --global user.name "당신의 이름"
git config --global user.email "your.email@example.com"
이 설정은 한 번 하면 이후 모든 Git 작업에 적용됩니다. 프로젝트마다 다른 설정을 하고 싶다면 --global
을 생략하고 프로젝트 디렉터리 내에서 명령을 실행하세요。2.3 인증 방식 선택 및 준비
Git으로 원격 저장소에 접근할 때 인증 방식은 주로 “HTTPS”와 “SSH” 두 가지가 있습니다。- HTTPS 브라우저와 마찬가지로 URL을 지정해 접근합니다。GitHub와 GitLab에서는 최근 비밀번호 인증이 폐지되고 “Personal Access Token(PAT)” 사용이 권장됩니다。
- SSH 공개키와 비밀키를 사용해 인증합니다。보안성이 높고 한 번 설정해 두면 매번 비밀번호를 입력할 필요가 없어, Git을 자주 사용하는 분들에게 추천합니다。
2.4 Git Credential Manager(GCM) 사용(필요에 따라)
비밀번호나 액세스 토큰 관리를 보다 안전하고 편리하게 하고 싶다면 Git Credential Manager(GCM) 도입도 고려해 보세요。 GCM을 도입하면 토큰 및 인증 정보를 안전하게 저장할 수 있어 매번 입력하는 수고를 줄일 수 있습니다。Ubuntu에서는 공식 문서나 패키지를 통해 설치할 수 있습니다。 이로써 Ubuntu 환경에서 “git clone”을 사용하기 위한 사전 준비가 완료되었습니다。 다음 장에서는 실제로 “git clone” 명령을 사용해 저장소를 복제하는 기본 절차를 소개합니다。3. git clone의 기본적인 사용법
git clone 명령은 원격 리포지토리의 내용을 로컬 환경에 그대로 복제(복사)하기 위한 기본 명령입니다. 오픈소스 프로젝트나 팀 개발에서 다른 사람이 만든 리포지토리를 사용하고 싶을 때, 가장 먼저 수행하는 작업이 git clone입니다.3.1 기본 명령 구문
가장 간단한 사용법은 다음과 같습니다.git clone <리포지토리 URL>
예를 들어, GitHub에 있는 공개 리포지토리를 클론하는 경우:git clone https://github.com/exampleuser/sample-project.git
이 명령을 실행하면 현재 디렉터리 내에 ‘sample-project’라는 새로운 폴더가 생성되고, 그 안에 리포지토리의 내용이 모두 다운로드됩니다.3.2 HTTPS를 사용한 클론 방법
많은 서비스에서 사용되는 것이 HTTPS를 통한 클론입니다. URL은 ‘https://’로 시작합니다. 처음 한 번만 인증 정보(사용자명, Personal Access Token 등)의 입력을 요구받을 수 있습니다.git clone https://github.com/사용자명/리포지토리명.git
3.3 SSH를 사용한 클론 방법
SSH 키를 등록한 경우, 보다 안전하고 비밀번호 없이 클론할 수 있습니다. SSH용 URL은 ‘git@github.com:’과 같은 형식이 됩니다.git clone git@github.com:사용자명/리포지토리명.git
SSH 클론을 이용하려면, 미리 공개키를 GitHub이나 GitLab 등에 등록해 두어야 합니다.3.4 클론 후 리포지토리 구조
git clone 명령을 실행하면, 지정한 리포지토리의 모든 파일과 디렉터리 외에도 버전 관리 정보가 저장된 ‘.git’ 디렉터리도 함께 복제됩니다.- .git 디렉터리 여기에는 리포지토리의 이력 및 설정 정보가 저장됩니다. 이 디렉터리가 존재함으로써, 해당 폴더 내의 파일은 모두 Git에 의해 관리됩니다.
- 작업 디렉터리 프로젝트의 소스 코드와 문서 등, 평소에 다루는 파일들입니다.
3.5 클론 시 현재 디렉터리 주의
git clone 명령은 실행한 디렉터리 내에 새로운 폴더를 생성합니다. 미리 저장 위치가 될 디렉터리를 이동(cd
명령 등으로)한 뒤 실행하는 것이 권장됩니다.4. 특정 브랜치를 클론하는 방법
Git 저장소에는 여러 브랜치가 존재할 수 있습니다. 일반적인 “git clone”에서는 기본(main이나 master 등) 브랜치가 클론되지만, 특정 브랜치만 클론하고 싶은 경우도 적지 않습니다. 이 장에서는 원하는 브랜치를 지정하여 클론하는 방법을 소개합니다.4.1 –branch 옵션 사용
“git clone” 명령에는--branch
(또는 축약형 -b
) 옵션이 제공됩니다. 이 옵션을 사용하면 지정한 브랜치로 저장소를 클론할 수 있습니다.git clone --branch 브랜치명 리포지토리 URL
예를 들어, “develop” 브랜치를 클론하고 싶을 경우 다음과 같이 입력합니다.git clone --branch develop https://github.com/exampleuser/sample-project.git
이렇게 하면 “develop” 브랜치가 체크아웃된 상태로 로컬 저장소가 생성됩니다.4.2 –single-branch 옵션과 결합하는 경우
기본적으로git clone
은 모든 브랜치 정보를 다운로드합니다. 그러나 “–single-branch” 옵션을 함께 사용하면 지정한 브랜치만 가져와 디스크 용량 및 통신량을 줄일 수 있습니다.git clone --branch 브랜치명 --single-branch 리포지토리 URL
이 방법은 특정 기능 브랜치만 확인하고 싶을 때나 대규모 저장소를 다룰 때 유용합니다.4.3 클론 후 다른 브랜치를 가져오는 경우
특정 브랜치뿐만 아니라 다른 브랜치도 나중에 사용하고 싶을 경우, 저장소 내에서 다음 명령을 실행하세요.git fetch --all
그 후, 원하는 브랜치로 전환하려면,git checkout 브랜치명
라고 입력합니다.4.4 주의점
- 프라이빗 저장소나 권한이 제한된 저장소의 경우 인증 정보가 필요하니 주의하세요.
- 존재하지 않는 브랜치명을 지정하면 오류가 발생합니다. 사전에 원격 저장소에서 브랜치명을 확인해 두는 것이 좋습니다.
5. 자주 발생하는 오류와 그 해결 방법
git clone을 사용할 때 인증, 연결, 권한 등 다양한 이유로 오류가 발생할 수 있습니다. 여기서는 Ubuntu 사용자가 자주 마주하는 대표적인 오류와 각각의 해결 방법을 소개합니다.5.1 HTTPS 인증 오류와 Personal Access Token(PAT) 사용
최근 GitHub와 GitLab에서는 보안 강화를 위해 기존 비밀번호 인증이 폐지되고 Personal Access Token(PAT) 사용이 필수가 되었습니다. 클론 시 다음과 같은 오류가 발생할 수 있습니다。remote: Support for password authentication was removed...
fatal: Authentication failed for 'https://github.com/...'
이 경우 GitHub에서 PAT를 발급받고, 사용자 이름 대신 GitHub 계정, 비밀번호 대신 PAT를 입력하십시오. PAT 생성 방법은 GitHub의 “Settings”>“Developer settings”>“Personal access tokens”에서 할 수 있습니다.5.2 SSH 인증 오류와 공개키 등록
SSH를 통해 클론할 때 “Permission denied (publickey)”라는 오류가 발생할 수 있습니다. 이는 SSH 키가 올바르게 등록되지 않은 경우에 발생합니다。 【해결 방법】- 터미널에서 SSH 키를 생성(기존 것이 없을 경우)
ssh-keygen -t ed25519 -C "your.email@example.com"
- 공개키 내용을 복사
cat ~/.ssh/id_ed25519.pub
- GitHub 또는 GitLab 설정 화면에서 공개키를 추가
5.3 리포지토리 접근 권한 오류
프라이빗 리포지토리나 조직 리포지토리를 클론하려 할 때 다음과 같은 오류가 발생할 수 있습니다。fatal: repository 'https://github.com/사용자명/리포지토리명.git/' not found
【해결 방법】- 리포지토리 URL이 틀리지 않은지 확인한다
- 계정이 리포지토리에 접근 권한을 가지고 있는지 확인한다
- 인증 정보를 다시 입력한다
5.4 네트워크 관련 오류
“Connection timed out”, “Could not resolve host” 등 네트워크 관련 오류는 인터넷 연결이나 프록시 설정이 원인인 경우가 많습니다。 【해결 방법】- 인터넷에 올바르게 연결되어 있는지 확인
- VPN이나 프록시를 사용할 때는 설정을 재검토
- 일시적인 GitHub 측 장애라면 잠시 기다렸다가 다시 시도
5.5 기타 일반적인 오류
- 디렉터리가 이미 존재함 동일한 이름의 폴더가 이미 있으면 클론할 수 없습니다. 디렉터리 이름을 변경하거나 기존 폴더를 삭제하십시오。
- 디스크 용량 부족 충분한 여유 공간이 있는지 확인하십시오。
6. git clone의 편리한 옵션
「git clone」명령에는 다양한 옵션이 제공됩니다. 이를 활용하면 필요한 데이터만 효율적으로 가져오거나, 서브모듈이 포함된 리포지토리를 올바르게 클론하는 등 작업 범위가 넓어집니다. 여기서는 특히 자주 사용되는 편리한 옵션들을 소개합니다.6.1 –depth 옵션(얕은 클론)
전체 리포지토리의 히스토리를 가져오지 않고 최신 히스토리만 가져오고 싶을 때는 「–depth」옵션이 편리합니다。 이를 사용하면 지정한 커밋 수만큼 히스토리를 가져올 수 있습니다。git clone --depth 1 https://github.com/exampleuser/sample-project.git
이 예에서는 최신 커밋 1개만 가져옵니다. 대규모 리포지토리나 CI 환경에서 속도를 중시할 경우에 추천합니다.6.2 –single-branch 옵션
기본적으로 git clone은 모든 브랜치 정보를 가져오지만, 「–single-branch」옵션을 사용하면 특정 브랜치만 클론할 수 있습니다。 특히 「–branch」옵션과 함께 사용되는 경우가 많습니다。git clone --branch develop --single-branch https://github.com/exampleuser/sample-project.git
필요한 브랜치만 효율적으로 클론하고 싶을 때 유용합니다.6.3 –recursive 옵션(서브모듈 동시 가져오기)
Git 리포지토리에는 다른 리포지토리를 「서브모듈」로 포함시킬 수 있습니다. 서브모듈이 포함된 프로젝트를 클론할 때는 「–recursive」옵션을 사용합시다。git clone --recursive https://github.com/exampleuser/sample-project.git
이렇게 하면 메인 리포지토리와 동시에 서브모듈도 자동으로 클론됩니다. 만약 「–recursive」옵션을 빼고 클론했다면, 나중에 아래 명령으로 서브모듈을 가져올 수 있습니다。git submodule update --init --recursive

6.4 기타 편리한 옵션
- –origin 옵션 원격 이름을 기본(origin) 외의 것으로 지정하고 싶을 때 사용합니다.
- 디렉터리명 지정 클론 시 저장 위치 디렉터리명을 명시적으로 지정하고 싶을 경우 명령어 끝에 디렉터리명을 추가합니다.
git clone https://github.com/exampleuser/sample-project.git 원하는디렉터리명
이 옵션들을 조합해서 사용하면, 「git clone」을 더욱 효율적이고 유연하게 활용할 수 있습니다.7. GUI 도구를 사용한 git clone
명령줄 작업이 서툴거나 Git을 보다 직관적으로 사용하고 싶다면 GUI(그래픽 사용자 인터페이스) 도구 활용을 권장합니다. Ubuntu에서는 몇 가지 GUI 도구를 이용해 「git clone」을 쉽게 실행할 수 있습니다.7.1 주요 GUI 도구의 예
- Gittyup 가볍고 간단한 Git 클라이언트. Ubuntu 공식 저장소나 Flatpak을 통해 설치할 수 있습니다.
- Visual Studio Code(VS Code) 많은 개발자에게 인기가 있는 에디터이며, 확장 기능을 사용하면 Git 작업을 직관적으로 수행할 수 있습니다.
- GitKraken 시각적으로 이해하기 쉬운 작업 화면과 풍부한 기능이 특징입니다(개인 사용 범위에서 무료).
7.2 Gittyup를 사용한 클론 방법
- Gittyup을 설치합니다(예:
sudo apt install gittyup
또는 Flatpak에서 설치). - 앱을 실행하고, 「리포지토리를 클론」이나 「Clone Repository」와 같은 버튼을 클릭합니다.
- 클론하려는 리포지토리 URL을 입력하고, 저장 폴더를 선택한 뒤 실행하면 리포지토리를 쉽게 다운로드할 수 있습니다.
7.3 Visual Studio Code를 사용한 클론 방법
- VS Code를 실행하고, 왼쪽의 「소스 관리」 아이콘을 클릭합니다.
- 상단에 표시되는 「리포지토리를 클론」 버튼(또는 「Clone Repository」)을 선택합니다.
- 리포지토리 URL을 붙여넣고 Enter 키를 눌러 저장 위치를 지정하면 클론이 시작됩니다.
- 클론이 완료되면, VS Code 내에서 바로 코드 편집, 커밋, 푸시 등 일련의 Git 작업이 가능합니다.
7.4 GUI 도구의 장점과 주의점
- 장점 명령 입력이 필요 없고 시각적으로 조작할 수 있어 초보자도 사용하기 쉽습니다. 파일 차이와 히스토리도 한눈에 파악할 수 있습니다.
- 주의점 도구마다 기능과 인터페이스가 다르므로, 자신의 용도와 취향에 맞는 것을 선택하세요. 처음에는 GUI부터 시작하고 점차 명령줄에도 익숙해지면 보다 유연한 운영이 가능합니다.
8. 요약
이 글에서는 Ubuntu 환경에서 “git clone”을 마스터하기 위한 기초부터 응용까지 자세히 설명했습니다. Git 설치 절차부터 HTTPS/SSH를 이용한 클론 방법, 특정 브랜치와 유용한 옵션 사용법, 나아가 GUI 도구를 통한 조작 방법까지, 전체 흐름을 체계적으로 소개했습니다. “git clone”은 오픈소스 프로젝트 도입, 팀 개발, 자기 학습 등 다양한 상황에서 매우 유용한 명령입니다. 한 번 제대로 사용법을 익혀두면 앞으로 많은 상황에서 작업을 원활하게 진행할 수 있게 될 것입니다. 특히 초보자는 “모르는 것이 있으면 오류 메시지나 공식 문서를 그대로 검색한다”, “익숙해지면 유용한 옵션이나 GUI 도구도 활용해 본다”와 같은 단계로, 꾸준히 스킬 업을 목표로 하세요. 만약 이 글에서 해결되지 않는 의문이나 새로운 문제가 발생하면 FAQ나 GitHub 공식 문서, 커뮤니티 정보를 활용하세요. 앞으로도 Ubuntu와 Git의 조합을 활용하여 개발 및 학습의 폭을 더욱 넓혀 나가세요.9. FAQ(자주 묻는 질문과 그 답변)
Q1: Ubuntu에서 Git을 설치하려면 어떻게 해야 하나요? A1: 터미널에서 다음 명령을 순서대로 실행하세요。sudo apt update
sudo apt install git
설치 후, git --version
으로 버전을 확인할 수 있습니다。 Q2: git clone으로 특정 브랜치만 가져오려면 어떻게 해야 하나요? A2: --branch
(또는 -b
) 옵션을 사용하여 브랜치명을 지정해 클론합니다。
예:git clone --branch 브랜치명 리포지토리 URL
필요에 따라 --single-branch
를 함께 사용하면 해당 브랜치만 가져올 수 있습니다。 Q3: HTTPS를 통해 클론할 때 인증 오류가 발생합니다. 어떻게 해야 하나요? A3: GitHub 및 GitLab에서는 비밀번호 인증 대신 Personal Access Token(PAT)이 필요합니다. GitHub 설정 화면에서 PAT를 발급받아 비밀번호 입력란에 토큰을 붙여넣으세요。 Q4: SSH 키 생성 방법과 등록 절차를 알려 주세요. A4: 터미널에서 다음 명령을 실행하여 SSH 키를 생성합니다。ssh-keygen -t ed25519 -C "your.email@example.com"
생성한 공개키(~/.ssh/id_ed25519.pub
)의 내용을 GitHub 및 GitLab 계정 설정 화면에 등록하세요。 Q5: 클론한 리포지토리의 원격 URL을 확인하려면 어떻게 하나요? A5: 클론한 리포지토리 디렉터리에서 다음 명령을 실행합니다。git remote -v
이렇게 하면 원격 리포지토리의 URL이 목록으로 표시됩니다。 Q6: 이미 같은 이름의 디렉터리가 있는 경우 어떻게 되나요? A6: git clone
은 지정한 저장 위치의 디렉터리명이 이미 존재하면 오류가 발생합니다. 다른 디렉터리? Actually: 다른 디렉터리명을 지정하거나, 필요 없을 경우 기존 디렉터리를 삭제한 뒤 다시 실행하세요。 Q7: 서브모듈이 포함된 리포지토리를 올바르게 클론하는 방법은? A7: 클론할 때 --recursive
옵션을 추가하세요。git clone --recursive 리포지토리 URL
이미 클론된 경우에는、git submodule update --init --recursive
을 실행합니다。 Q8: Ubuntu에서 사용할 수 있는 추천 Git GUI 도구는? A8: Gittyup, Visual Studio Code(확장 기능으로 Git 연동), GitKraken 등이 인기가 있습니다. 용도와 선호에 맞게 선택하세요。 Q9: 클론한 후, 다른 브랜치로 전환하려면? A9:git fetch --all
git checkout 브랜치명
으로 다른 브랜치로 전환할 수 있습니다。