원격 저장소와 깃허브
자신의 컴퓨터에서 작업한 뒤 그 컴퓨터 안에 커밋을 저장하는 저장소를 지역 저장소(local repository)라고 한다.
만일 실수로 지역 저장소를 삭제하면 작업했던 내용이 다 사라진다. 그래서 지역 저장소에만 저장하는 것은 안전하지 않기 때문에 작업하는 컴퓨터가 아닌 다른 곳에 저장 공간을 마련해야 한다.
원격 저장소란
깃에서 지역 저장소와 원격 저장소(remote repository)를 연결해서 버전 관리하는 파일들을 쉽게 백업할 수 있다.
원격 저장소는 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 말한다.

원격 저장소는 지역 저장소와 연결되어 있으면서 백업과 협업이라는 중요한 역할을 한다. 큰 규모의 프로젝트를 진행한다면 다름 사람과 협업을 해야하는 경우가 많은데, 이럴 때 원격 저장소의 역할은 더욱 중요해진다.

인터넷에서 원격 저장소를 제공하는 서비스를 주로 사용한다. 그 중 깃과 관련해 가장 많이 사용하는 서비스가 깃허브이다.
깃허브로 할 수 있는 일들
깃허브에서는 사용자를 위해 저장소를 제공한다. 깃허브에 가입하면 무료 서비스를 제공하고 대부분 무료 서비스만으로도 용량 제한 없이 사용할 수 있다.
- 원격 저장소에서 깃을 사용할 수 있다.
- 깃허브는 깃 사용을 위한 원격 저장소를 제공하는 서비스이기 때문에 깃을 따로 설치하지 않고도 버전 관리 기능을 사용할 수 있다.
- 즉, 인터넷에서 깃을 사용하는 것이다.
- 깃허브에 원격 저장소를 만들어 사용할 수도 있고, 지역 저장소가 있다면 원격 저장소와 연결해서 사용할 수도 있다.
- 지역 저장소를 백업할 수 있다.
- 깃허브에 원격 저장소를 만들고 사용자 컴퓨터의 지역 저장소를 연결한 후 동기화하면 지역 저장소를 인터넷상에 백업할 수 있다.
- 클라우드 디스크에 백업할 수도 있지만 깃허브에 백업하면 원격 저장소에 손쉽게 커밋할 수 있다.
- 협업 프로젝트에 사용할 수 있다.
- 이제는 깃허브가 기본 저장소가 되고 있다.
- 원격 저장소이므로 인터넷만 가능하면 누구나 접근할 수 있고, 깃과 깃허브에서 여러 가지 협업 도구를 제공한다. 즉, 깃허브를 사용하면 여러 명의 팀원이 하나의 프로젝트를 진행하기가 쉽다.
- 자신의 개발 이력을 남길 수 있다.
- 깃허브에서 소스를 수정하고 오픈 소스에 참여해서 하는 일들은 사용자 초기 화면에 날짜별로 모두 기록이 남는다.
- 최근에는 개발자를 뽑을 때 깃허브 계정을 요구하는 곳들이 있다. 지원자가 어떤 주제에 관심이 많은지, 어떤 것들을 개발했는지, 그리고 무엇을 개발 중인지 한눈에 확인할 수 있기 때문이다.
- 깃허브는 개발자가 자신의 개발 이력을 관리하기 좋은 플랫폼이다.
- 다른 사람의 소스를 살펴볼 수 있고, 오픈 소스에 참여할 수 있다.
- 다른 사람의 소스를 읽어보고 분석하면서 나름대로 소스를 수정하고, 작성해 보는 것이다.
- 깃허브에는 전세계 개발자들이 공개해 놓은 소스들이 많다.
- 또한, 깃허브에는 깃을 비롯해 웹 개발이나 인공지능, 데이터 과학 등 개발의 전 분야에 걸쳐 다양한 오픈 소스들이 등록되어 있다.
깃허브 시작하기
저장소는 필요할 때마다 얼마든지 만들 수 있고, 사용하지 않는 저장소는 삭제할 수 있다.
깃허브에 가입하기
1. www.github.com에 접속한 후 [Sign up]을 누른다.
2. 가입 항목 중 필수 입력 사항을 모두 입력하고, 화면 아래쪽의 'Verify account'에 있는 문제를 풀어야 한다. 이후 [Create an account]를 누른다.
3. 깃허브에는 유료 계정과 무료 계정이 있다. 깃허브를 공부하거나 개인적인 프로젝트를 관리할 목적이라면 무료 계정으로 충분하므로 'Free'를 선택하고 [Continue]를 누른다.
4. 간단한 설문 화면이 나타나는데 설문에 답을 한 후 [Submit]을 누른다. 설문에 답하기 싫다면 [skip this step]을 눌러 건너뛰어도 된다.
5. 가입할 때 입력했던 메일 주소로 인증 메일이 도착했을 것이다. 메일 메시지 안에 있는 [Verify email address]를 눌러서 인증하면 회원 가입이 끝난다. 이제 로그인하면 된다.
깃허브에 원격 저장소 만들기
깃허브에 가입했다면 누구나 저장소를 만들 수 있는데 여기에서 만들 저장소는 공개 저장소이다. 깃허브에서는 저장소를 리포지토리(repository)로 표시한다.
1. 깃허브에 로그인한 후 화면 오른쪽 위에 있는 [+]를 누르고 [New repository]를 선택한다.
2. 저장소 이름을 비롯해서 필요한 항목을 기입하고 [Create repository]를 누른다.
① Repository name : 저장소 이름을 입력한다. 영문과 숫자, 언더바(_), 붙임표(-) 등을 사용할 수 있으며, 공백이 포함되어 있을 경우 깃허브에서 공백을 자동으로 붙임표(-)로 바꾼다.
② Description : 저장소에 대한 간단한 설명을 입력한다. 이 부분은 옵션이므로 반드시 입력하지 않아도 된다.
③ Public / Private : 저장소를 공개로 할지 비공개로 할지 선택한다. 공개 저장소는 주소만 알고 있으면 누구나 볼 수 있다. 만일 다른 사람에게 보이지 않는 프로젝트를 관리하고 싶다면 저장소를 만들 때 비공개(private) 저장소로 만들면 된다.
④ Initialize this repository with a README : 저장소에 대한 소개와 설명을 작성하는 README 파일을 자동으로 만들려면 체크한다.
⑤ Add .gitignore : [▼]를 누른 후 어떤 언어와 관련된 것들을 .gitignore 파일에 지정할지 선택한다. 예를 들어, 'C++'을 선택한다면 C++에서 사용하는 컴파일된 라이브러리나 실행 파일을 깃에서 무시하도록 자동으로 .gitignore 파일을 만들어준다.
⑥ Add a License : 오픈 소스 프로젝트를 위한 저장소를 만들 경우 해당 오픈 소스의 라이선스를 선택한다. 오른쪽에 있는 ⓘ를 누르면 라이선스에 대한 자세한 설명을 참고할 수 있다.
3. 저장소를 만들었다면 화면에 나타난 HTTPS 주소를 사용해 언제든지 깃허브 저장소에 접속할 수도 있고 파일을 올릴 수도 있다. 즉, 저장소 주소만 알고 있다면 어디에서든 지역 저장소를 백업하거나 다른 사람과 협업할 수 있다.

- HTTPS로 접속하는 주소는 다음과 같은 형태이다.
https://github.com/아이디/저장소명
지역 저장소를 원격 저장소에 연결하기
원격 저장소를 만들었으니 지역 저장소에서 한 작업을 원격 저장소로 올리거나 원격 저장소에 있는 파일을 지역 저장소로 내려받아 작업을 한다. 먼저 지역 저장소와 원격 저장소를 연결해야 한다.
지역 저장소 만들기
깃허브의 원격 저장소에 연결할 새로운 지역 저장소를 만들어야한다.
1. local-git을 줄인 loc-git이라는 이름으로 새 디렉터리를 만들고 지역 저장소로 초기화한다. 그리고 디렉터리 안으로 들어가 문서 f1.txt를 만든다.
$ git init loc-git
$ cd loc-git
$ vim f1.txt

2. f1.txt에는 간단하게 영문자 'a'만 입력하고 파일을 저장한 후 편집기를 종료한다.
3. f1.txt를 스테이지에 올린 후 커밋한다. 커밋 메시지는 'add a'라고 한다. git log 명령으로 커밋이 잘 되었는지 확인한다.
$ git add f1.txt
$ git commit -m "add a"
$ git log

원격 저장소에 연결하기
사용자 컴퓨터에 있는 지역 저장소를 깃허브에 있는 원격 저장소와 연결해보자.
'커맨드 라인에서 기존 저장소를 푸시하기' 방법을 사용해서 지역 저장소에 있는 파일을 원격 저장소로 올려본다.
1. 지역 저장소와 원격 저장소를 연결하려면 깃허브의 저장소 주소를 알고 있어야 한다.
2. 저장소 주소를 복사했다면 터미널 창에 아래와 같이 입력한다.
$ git remote add origin 복사한 주소 붙여넣기

원격 저장소(remote)에 origin을 추가(add)하겠다고 깃에게 알려주는 것이다. origin은 깃허브 저장소 주소를 가리킨다.
깃허브 저장소 주소를 그대로 쓰면 너무 길기 때문에 origin이라는 단어로 줄여서 remote에 추가하는 것이다.
3. 오류 메시지 없이 프롬프트($)가 나타나면 제대로 실행된 것이다.

4. 원격 저장소(remote)에 제대로 연결되었는지 확인해보자. git remote 명령에 -v 옵션을 붙여서 입력한다.
$ git remote -v
5. remote에 origin이 연결되어 있고 origin이 가리키는 주소가 바로 옆에 표시될 것이다.

원격 저장소에 올리기 및 내려받기
지역 저장소와 원격 저장소를 연결했으니 지역 저장소의 소스를 원격 저장소에 올릴 수 있고, 원격 저장소에 있는 소스를 지역 저장소로 내려 받을 수 있다.
지역 저장소의 소스를 원격 저장소로 올리는 것을 '푸시(push)'라고 하고, 원격 저장소에서 지역 저장소로 내려 받는 것을 '풀(pull)'이라고 한다.
원격 저장소에 파일 올리기 - git push
1. 지역 저장소의 브랜치를 origin, 즉 원격 저장소의 master 브랜치로 푸시하라는 명령이다. '-u' 옵션은 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위한 것으로 처음에 한 번만 사용하면 된다.
$ git push -u origin main
2. 푸시가 끝나면 프롬프트($)가 나타난다.

3. 푸시가 끝났다는 것은 지역 저장소의 커밋이 원격 저장소로 올라갔다는 의미이다. 푸시가 끝났으면 깃허브 저장소가 열려있는 웹 브라우저 창에서 새로고침을 한다. 지역 저장소에 있던 f1.txt 파일이 원격 저장소에 올라와 있다.

4. 파일 목록 위의 '1 commit'을 누른다. 지역 저장소에서 커밋했던 내용이 똑같이 올라와 있을 것이다.
5. 한 번이라도 지역 저장소와 원격 저장소를 연결해서 푸시했다면 그 이후는 더 간단하게 푸시할 수 있다. 지역 저장소에서 또 다른 커밋을 만들고 다시 푸시한다. 빔으로 f1.txt을 다시 연다.
$ vim f1.txt
6. 영문자 'b'를 추가하고 저장 및 종료한다.
7. 스테이징과 커밋을 한 번에 실행한다. git commit 명령에서 -am 은 스테이징 옵션과 메시지 옵션을 함께 쓴 것으로 최소한 한 번이라도 커밋한 파일이어야 사용할 수 있다.
$ git commit -am "add b"

8. 지역 저장소에 새로운 커밋이 만들어졌으니 원격 저장소에 푸시한다. 지역 저장소의 브랜치와 origin의 master 브랜치를 연결했기 때문에 다시 파일을 푸시할 때는 git push라고만 입력하면 된다.
$ git push
9. 방금 만든 커밋이 원격 저장소로 푸시된다.

10. 웹 브라우저에서 깃허브 저장소 화면을 새로고침해보자. 파일 목록에서 파일 이름 오른쪽에 최신 커밋 메시지가 나타나는데, 방금 커밋한 'add b'라는 커밋 메시지가 보인다.

11. 가장 최근에 수정한 파일 내용인 a와 b가 들어있다.

깃허브 사이트에서 직접 커밋하기
보통 지역 저장소와 원격 저장소를 연결한 후 지역 저장소의 커밋을 원격 저장소에 푸시하는 방법을 많이 사용하지만, 깃허브 사이트에서 직접 커밋할 수도 있다.
1. 깃허브의 저장소로 접속한다. 앞에서 푸시한 f1.txt 파일이 있다. 새로운 파일을 추가하기 위해 [Create new file]을 누른다.
2. 맨 위에 파일 이름을 입력한 후 내용을 작성한다. 파일 이름으로 f2.txt, 내용으로 숫자 '1, 2, 3'을 입력한다.
3. 파일 내용을 입력했다면 기본적인 커밋 메시지가 입력되어 있다. 이 메시지는 그냥 사용하거나 원하는 내용으로 수정한 후 [Commit new file]을 누른다.
4. 원격 저장소에 새로운 커밋이 추가된다.
원격 저장소에서 파일 내려받기 - git pull
원격 저장소에 있는 소스 파일을 다른 사용자가 수정했거나 깃허브 사이트에서 직접 커밋하면 지역 저장소와 차이가 생긴다. 이럴 때, 원격 저장소와 지역 저장소의 상태를 같게 만들기 위해 원격 저장소의 소스를 지역 저장소로 가져온다. 이를 '풀(pull)'이라고 한다.
1. 이전에 loc-git 지역 저장소를 원격 저장소에 연결한 후 푸시했다. 이후 깃허브 사이트에서 f2.txt를 만들었지만 loc-git 지역 저장소에는 아직 f2.txt 파일이 없다. loc-git 디렉터리로 이동한 후 ls 명령을 사용하여 디렉터리 안의 내용을 확인한다.

2. 아래 명령은 origin(원격 저장소)의 내용을 master(main) 브랜치로 가져온다는 의미이다.
$ git pull origin main
3. $가 화면에 표시되면 가져오기가 끝난 것이다.

4. git log 명령으로 커밋 로그를 확인해보자. 'Create f2.txt'라는 커밋이 지역 저장소 커밋 로그에도 나타나는 것을 확인할 수 있다.
$ git log

깃허브 저장소 화면 살펴보기

① 'KJH622'는 깃허브 계정을 'test-1'은 저장소 이름을 나타낸다. 계정을 누르면 해당 계정에 대한 요약 정보 화면으로 이동하고, 저장소 이름을 누르면 저장소 파일 목록 화면으로 이동한다.
② 이 저장소의 알림 내용을 받아본다.
③ 이 저장소를 즐겨찾기한다. Star의 숫자가 높을수록 좋아하는 사용자가 많다는 뜻이다.
④ 이 저장소를 복제한다. 깃허브에서 오픈 소스 프로젝트에 참여하거나 직접 소스를 분석하면서 공부하려면 먼저 저장소를 복제해야 한다.
⑤ 커밋 개수나 브랜치 개수 등 커밋과 관련된 정보들이다.
⑥ 저장소에 있는 파일 정보이다. 파일 이름과 최신 커밋 메시지, 최신 커밋 시간이 나타난다.
깃허브에 SSH 원격 접속하기
SSH 원격 접속이란
SSH(Secure Shell)은 보안이 강화된 안전한 방법으로 정보를 교환하는 방식이다. SSH에서는 기본적으로 프라이빗 키(Private Key)와 퍼블릭 키(Public Key)를 한 쌍으로 묶어서 컴퓨터를 인증한다.
퍼블릭 키는 외부로 공개된 키이고 프라이빗 키는 아무도 알 수 없게 사용자 컴퓨터에 저장되는 키이다.
'Study > git' 카테고리의 다른 글
| [깃&깃허브 입문] 깃과 브랜치 (1) | 2025.06.03 |
|---|---|
| [깃&깃허브 입문] 깃으로 버전 관리하기 (1) | 2025.03.24 |
| [깃&깃허브 입문] 깃 시작하기 (0) | 2025.03.20 |
