원격 저장소에 있는 프로젝트를 사용하기 위해서는 git clone
명령을 사용하여 로컬 저장소에 프로젝트를 복제(다운로드)해야 합니다. 이번 포스팅에서는 원격 저장소 복제하는 방법에 대해서 간단하게 알아보겠습니다.
SSH 인증
GitHub에서 Private 저장소를 복제하거나 파일을 업로드 하기 위해서 먼저 SSH 키를 생성 후 GitHub에 공개키를 등록해서 SSH 인증이 가능해야 합니다.
만약 SSH 인증을 위한 절차를 하지 않았다면 아래 포스트를 참고하여 인정 절차를 먼저 진행해주세요.
원격 저장소 복제 – git clone
원격 저장소를 복제하기 위해서는 아래와 같이 입력하면 됩니다.
git clone <저장소 주소>
보통 GitHub, GitLab 등 원격 저장소 호스팅 업체에서는 아래와 같이 저장소 주소를 HTTPS 및 SSH 형태로 제공하고 있습니다.
저는 이전 포스트에서 생성한 원격 저장소를 복제해보겠습니다. 작업 폴더로 이동 후 아래와 같이 입력합니다.
git clone git@github.com:whalec-io/git-test.git
Cloning into 'git-test'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), done.
작업 폴더 하위에 git-test
폴더가 생성되고, 거기에 원격 저장소에 있는 파일이 복제 됩니다. 폴더 이름은 기본적으로 저장소 이름을 생성됩니다.
cd git-test
ls
total 0
drwxr-xr-x@ 4 eden staff 128 9 16 12:56 .
drwxr-xr-x@ 4 eden staff 128 9 16 12:55 ..
drwxr-xr-x@ 12 eden staff 384 9 16 12:56 .git
-rw-r--r--@ 1 eden staff 0 9 16 12:56 a.txt
만약 폴더를 변경하고 싶다면 아래와 같이 저장소 뒤에 폴더 이름을 입력하면 됩니다.
git clone <저장소 주소> <폴더 이름>
git clone -b
git clone
시 기본 브랜치의 내용을 복제하는데, git clone -b
옵션을 사용하면 기본 브랜치가 아닌 특정 브랜치의 내용을 복제합니다.
git clone -b <브랜치이름> <저장소 주소> <폴더 이름>
아래와 같이 develop 브랜치의 내용을 복제하겠습니다.
git clone -b develop git@github.com:whalec-io/git-test.git git-test-dev
Cloning into 'git-test-dev'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), done.e correct access rights
and the repository exists.
만약 브랜치가 없으면 아래와 같이 오류 발생 후 복제하지 않습니다.
git clone -b develop2 git@github.com:whalec-io/git-test.git git-test-dev2
Cloning into 'git-test-dev2'...
fatal: Remote branch develop2 not found in upstream origin
저장소에 커밋하기
a.txt
파일을 저장하고, git status
명령어를 입력하면 a.txt 파일이 수정된 것을 확인할 수 있습니다.
git status
On branch develop
Your branch is up to date with 'origin/develop'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: a.txt
no changes added to commit (use "git add" and/or "git commit -a")
git add
명령어를 사용하여 스테이징 영역으로 이동합니다.
# git add <파일>
# 전체 추가
git add . # 또는 파일 만 추가 : git add a.txt
git commit
명령어를 사용하여 커밋을 해보겠습니다.
git commit -m "Second Commit"
[develop 4b74182] Second Commit
1 file changed, 1 insertion(+)
로컬 저장소에 정상적으로 커밋되었습니다. 커밋 이력은 git log
명령어를 통해 확인할 수 있습니다.
git log
commit 4b74182b3ed98c1439d23f26057b87c06bb2f329 (HEAD -> develop)
Author: whalec-io <whalec-io@daum.net>
Date: Mon Jan 6 21:30:46 2025 +0900
Second Commit
commit c3ac25994fe5925df74554949a69f1bc7043fcdf (origin/main, origin/develop, origin/HEAD)
Author: eden kang <whalec-io@daum.net>
Date: Thu Sep 12 00:04:42 2024 +0900
First Commit
마치며
간단하게 git clone
사용 방법에 대해서 알아보았습니다.