Windows에 Git 설치 후 Github의 소스코드 내려받기(Clone)

Git 이란?

git (깃 이라고 읽는다)을 사용하면서도 git을 누가 만들었는지 모르는 사람들이 의외로 많았다. git은 리눅스의 아버지라 불리는 리누스 토발즈가 개발한 소스코드 버전관리 소프트웨어다.

리눅스 커널의 메인 컨트리뷰터였으나 기존의 SVN이나 CVS등 소스코드 관리 도구가 마음에 들지 않아 그러한 도구 없이 tar, diff, patch 등의 명령어를 사용하여 수작업으로 버전을 관리하고 배포했다. 하지만 스스로 느끼는 어려움과 기여자들의 원성을 견디다 못해 잠시(2주 라는 소문이 있다) 잠수를 타더니 들고 나온 것이 바로 git 이다.

리누스 토발즈가 만들었다는 후광도 있었겠지만 리눅스 커널 개발 기여자들은 git의 사상과 기능에 환호했고 많은 기여자들이 참여하여 계속 기능을 개선해나갔다. 그리고 마침내 여러 상용 소스코드 관리도구들을 오징어로 만들며 소스코드 버전관리 소프트웨어 시장을 장악했다. 오죽했으면 오픈소스 진영을 공산주의라고 비난했던 MS도 git을 사용하여 소스코드를 관리하고 있으며 Github를 인수하기도 했다.

Git으로 Github의 리포지토리 복제(Clone)하기

git은 기본적으로 커맨드라인에서 동작하는 명령어 기반의 프로그램이다. 하지만 오픈소스다 보니 git을 기반으로 하는 여러 GUI를 지원하는 git 프로그램이 개발되어 배포되고 있다. 어떤 git 프로그램이든 설치된 컴퓨터의 특정 디렉토리에 코드를 저장하는 독립적인 저장소를 만들고 관리한다. git의 공식 홈페이지에서 Git을 다운로드 받아 설치하면 비어있는 디렉토리에서 다음과 같이 GitGUI(이하 Git)를 실행하여 리포지토리를 생성할 수 있다.

폴더에서 마우스를 우클릭하면 표시되는 팝업 메뉴에서 “Open Git GUI here”를 클릭한다. 물론 Git Bash를 실행하며 커맨드라인에서 리포지토리 작업을 수행할 수도 있다.

리포지토리가 생성되어 있지 않은 디렉토리에서 Git을 실행하면 다음과 같은 화면이 보인다.

Git 리포지토리가 없는 디렉토리에서 Git을 실행하면 리포지토리를 생성하거나 다른 Git 리포지토리를 복제(Clone)하거나 Git 리포지토리가 있는 디렉토리를 선택하여 리포지토리를 열수있다.

여기서는 Github에 있는 리포지토리를 Git을 설치한 PC로 복제(Clone)해본다. 화면에서 Clone Existing Repository를 클릭한다.

위 화면처럼 Source Location에 Github에서 복제하고자 하는 리포지토리의 주소를 입력한다. 그리고 Target Directory에는 복제한 리포지토리를 생성할 디렉토리를 지정한다. Target Directory는 미리 비어있는 디렉토리를 만들어두어도 되고 없어도 된다. 없으면 Git에서 자동으로 만든다.

Source Location에 입력할 리포지토리의 주소는 다음과 같이 Github의 리포지토리 화면에서 확인할 수 있다.

github에 로그인한 다음 리포지토리 중 하나에 들어가면 [<> Code] 라는 초록색 버튼이 보인다. 이 버튼을 누르면 HTTPS 주소와 SSH 주소를 확인할 수 있다. 여기서는 SSH 주소를 복사하여 앞 화면의 Git화면의 Source Location에 붙여 넣으면 된다.

Github 접속을 위한 SSH Key 등록

하지만 “Clone” 버튼을 누르기 전에 해줘야 할 작업이 있다. Git이 SSH 주소로 Github에 접속하여 리포지토리에 접근하기 위한 인증키를 생성하여 등록해줘야 한다.

Git의 “Help” 메뉴에서 “Show SS Key” 메뉴에서 “Generate Key” 버튼을 클릭하여 SSH Key를 생성한 다음, Public Key 전체를 선택해 클립보드로 복사한다. 만약 보안을 더 강화하기 위해서라면 SSH Key를 생성할 때 패스프레이즈를 입력하라고 할 때 입력하면 된다.

SSH Public Key를 복사한 다음 Github 로그인 후 우측 상단의 아이디 아이콘을 클릭한 다음 “Settings” 메뉴를 선택한다.

Settings 화면의 “SSH and GPG keys” 메뉴를 클릭한다.

그리고 “New SSH key” 버튼을 클릭하면 표시되는 화면에서 Key 항목에 SSH Public Key를 붙여 넣은 다음 “Add SSH key” 버튼을 클릭하면 위 화면처럼 Public Key가 등록된다. Title은 편한대로 지정하면 되고 Key Type은 “Authentication Key”를 선택하면 된다.

Git에서 Github 리포지토리 Clone 실행

키가 정확하게 등록되면 Git의 Clone Repository 화면에서 “Clone” 버튼을 누른다.

정상적으로 SSH Public Key 가 등록되었으면 SSH Private Key 로 인증하고 앞 화면처럼 리포지토리가 로컬PC의 디렉토리에 복제(Clone) 된다.

리포지토리가 정상적으로 복제되면 Target Directory에 다음과 같이 Github의 리포지토리에 저장되어 있는 소스코드가 모두 내려온(Clone : 복제) 것을 탐색기로 확인할 수 있다.

이것은 단지 Git의 Clone 명령을 통해 Github에 있는 리포지토리 하나를 PC로 내려받은(Clone) 것에 불과하다. 이 코드를 PC에서 수정하고 PC의 로컬 리포지토리에 Commit한 다음 다시 Github의 원본 리포지토리에 브랜치를 만들어 Push 하려면 이름을 변경하여 Github의 원본 리포지토리와 차별화하는 것이 좋다.

로컬 리포지토리의 브랜치 이름 변경

로컬에 복제된 리포지토리의 기본 브랜치 이름은 기본적으로 master 로 설정된다.

이 이름을 변경해준다.기본 브랜치 이름을 master에서 다른 이름으로 변경하는 이유는 이 브랜치를 Github의 기본 브랜치인 main과 구별하여 하위 브랜치로 Push 했을 때 main 브랜치와 쉽게 구분하기 위해서다.

“Branch” 메뉴에서 “Rename…” 기능을 이용해 이름을 변경한다.

로컬에 복제한 리포지토리의 기본 브랜치 이름은 master 다. 로컬의 코드를 수정하고 commit 한 다음 Github의 wordpress-log 리포지토리에 merge(병합)하기 위해 push하면 master 라는 이름으로 push가 된다. main과 master는 혼동될 수 있기 때문에 로컬 리포지토리의 master 브랜치를 wordpress-log-dev 라는 이름으로 변경한다.

여기까지 진행하면 Github의 wordpress-log 라는 리포지토리가 로컬PC로 복제(Clone)가 완료된다.

Visual Studio Code에서 열기

이제 VSCode를 소스코드를 열기 위해 실행한다.

“Open Folder…”를 클릭해서 리포지토리의 폴더를 연다. 그리고 아래 화면의 왼쪽 메뉴에서 Source Control(주황색 박스)을 선택하면 소스코드의 Commit(커밋) 이력을 보여준다. Github의 리포지토리를 복제(Clone)할 때 Commit 이력까지 함께 내려받은 것이다.

이제 맨 위의 Explorer를 클릭하면 표시되는 파일 목록에서 수정할 코드가 담긴 파일을 열어 코드를 수정하고 로컬 리포지토리에 Commit 할 수 있다.

Github의 리포지토리를 로컬PC의 Git으로 Clone한 후 코드를 수정하고 로컬 Git에 Commit한 다음 다시 Github에 Push하는 방법은 다음 포스트에 작성한다 (보러가기)

#GitGUI #리포지토리 #클론 #Clone

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다