Git과 GitHub를 사용하기 전에 알아야 할 개념들 :: Remote, Push, Pull, Clone
Git Tutorial 6
Git과 GitHub 사이에서 사용되는 용어들을 알아보자
현재 우리는 로컬 저장소(인터넷 연결이 필요 없이 접속할 수는 내 컴퓨터)에서만 작업을 했습니다. 이제는 다른 사람과 공유하기 위한 원격 저장소에 대해서 알아봅시다.
우리는 다음과 같은 개념(명령어)들을 배웠습니다.
git init
git status
git add [파일명 또는 폴더명]
git commit
또는git commit -m "메시지"
git log
하지만 이 모든 것은 제 컴퓨터 내에서 이루어진 것입니다. 다름 사람과 협업하기 위해서는 이 저장소를 공유해야 합니다. 이제부터 제 컴퓨터 내에 있는 로컬 저장소를 공유하는 법에 대해서 배워봅시당.
GitHub
Git 저장소를 위한 Google Drive 같은 곳.
Google Drive에는 잡다한 문서나 이미지나 동영상 같은 파일을 공유합니다. 이처럼 GitHub는 Git 저장소를 공유하는 곳입니다. GitHub에 Git 저장소를 올리면 다양한 개발자를 위한 편의 기능을 지원해줍니다. 이 곳 말고도 BitBucket이나 GitLab이라는 사이트도 Git 저장소를 공유하기 위해 사용할 수 있습니다. 그중 가장 인기 많은 곳은 GitHub입니다. 그렇기 때문에 GitHub를 예로 들어서 설명하겠습니다.
GitHub에 Git 저장소에 올리면 이런 식으로 제 Commit 기록들을 바로 웹 사이트에서 확인할 수 있습니다.
제가 올린 Git 저장소에서 쓰인 언어도 분석해줍니다.
누군가 한 Commit을 누르면 어떤 변경 사항이 있었는지 확인할 수 있고 그리고 거기에 대한 댓글도 남길 수 있습니다.
말고도 Pull Request, Issue, GitHub Page, Actions, 등 여러 가지 편의 기능이 있습니다.
원격 저장소와 관련된 Git의 용어 및 개념들
일단 저번 글에서 설명한 Local(로컬), Remote(원격)이라는 단어가 기억나시나요?
용어가 어렵게 느껴지거나 기억이 나지 않다면 "여기서" 다시 보고 오세요!
우리는 내 컴퓨터에 있는 저장소를 로컬 저장소라고 부르고 GitHub에 올린 저장소를 원격 저장소라고 부릅니다.
사용할 새로운 용어를 알아봅시다.
1. Remote
Git을 사용하다 보면 다른 어딘가에 저장소가 있을 수 있습니다. 그런 저장소들을 원격 저장소(Remote Repository)라고 합니다
다른 곳에 내가 작업한 저장소를 올리려면 어디에 올릴지 알아야 합니다. 그래서 우리는 저장소를 올리기 전에 GitHub에서 미리 올릴 장소를 마련합니다. 그 올릴 장소가 바로 원격 저장소입니다.
원격 저장소는 하나가 아닐 수도 있습니다
제가 관심있는 오픈소스 프로젝트에 기여하기 위해 프로젝트의 일부분을 맡아서 개발하고 있다고 해봅시다. 제가 맡은 부분을 개발하기 위해 여러 곳에 Log도 찍고 실험적인 시도도 해보고 디버깅도 안 한 코드를 바로 모든 개발자들이 공유하고 작업하고 있는 원격 저장소에 업로드하기는 곤란합니다. 그럴 때는 origin(기본) 원격 저장소가 아니라 다른 개인용 원격 저장소를 제 임의로 만들어서 업로드하고 관리할 수 있습니다. 이렇게 되면 원격 저장소는 2개가 됩니다.
제가 등록한 모든 Remote의 명칭과 주소들은 git remote -v
명령어로 확인할 수 있습니다.
원격 저장소의 주소는 기억하고 명시하기 쉽도록 고유한 닉네임을 붙여주는데 origin은 저장소에서 기본(default)으로 사용하는 원격 저장소의 명칭입니다. 어떤 원격 저장소에 올릴지 말하지 않고 그냥 '원격 저장소에 업로드해!'라고 하면 기본적으로 origin으로 업로드됩니다.
참고로 우리가 실습한 저장소에서는 아무런 원격 저장소도 저장해주지 않았으므로 Remote들을 확인해보면 아무것도 뜨지 않습니다.
2. Push
로컬 저장소의 Commit을 원격 저장소에 올리는 것은 Push한다고 합니다
Remote를 등록했으면 거기에 제가 로컬 저장소에서 만든 Commit을 올릴 수 있습니다. 그것을 Push한다고 합니다.
Push는 git push
명령어를 통해서 합니다.
등록한 원격 저장소도 없는데 Push하려고 하면 Git은 어디에 올릴지 모르기 때문에 Push가 실패하면서 아래와 같은 문구가 출력합니다.
해석하면 다음과 같습니다.
너는 어디에 Push할지 URL을 제공해라. 그 URL은git remite add <리모트_이름> <URL>
로 등록할 수 있다. 그리고git push <리모트_이름>
명령어로 그 Remote에 Push할 수 있다.
여기서 <리모트_이름>
이 제가 위에서 언급했던, 주소를 기억하고 명시하기 쉽도록 붙여준다는, 고유한 닉네임입니다.
GitHub에 원격 저장소를 만들고 그 저장소 URL을 제공하면 git push가 정상적으로 됩니다. (자세한 내용은 다음 글에서 다루겠습니다😀)
3. Pull
반대로 원격 저장소에 올라온 Commit을 제 로컬 저장소에 가져오는 것을 Pull한다고 합니다
누군가랑 원격 저장소를 공유하면서 일을 하다 보면 Pull 기능이 필요합니다.
예를 들어서, 팀원A가 원격 저장소에 Commit을 Push했다면 다른 사람들은 그 Commit을 가져와야지 팀원A가 작업한 것들을 볼 수 있습니다. 그 기능이 바로 Pull입니다.
Pull을 하다 보면 팀원이 수정한 코드와 내가 수정한 코드가 겹쳐서 충돌이 나는 등 다양할 오류가 발생할 수 있습니다. 이것을 해결하는 방법도 간단히 소개할 예정입니다.
4. Clone
원격 저장소를 그대로 복제(Clone)해오는 것을 Clone한다고 합니다.
제가 Git으로 파일 관리를 시작하기 위해 Git 저장소를 만드는 방법으로 git init
명령어를 가르쳐줬습니다. 이 방법 말고도 Git을 저장소를 만들 수 있는 또 다른 방법이 있습니다. 바로 Clone입니다. 기존에 있는 저장소를 복제해오면 그 복제한 저장소가 곧 제 로컬 저장소입니다. 그 저장소에서 기존의 파일을 수정하고 Commit하며 Git을 사용할 수 있습니다.
댓글
이 글 공유하기
다른 글
-
변경한 파일을 저장해보자 :: git commit
변경한 파일을 저장해보자 :: git commit
2020.07.13 -
Stage it! Commit할 파일을 선택해보자 :: git add [파일명]
Stage it! Commit할 파일을 선택해보자 :: git add [파일명]
2020.07.07 -
Commit하기 위해 필요한 Git 설정하기 :: git config (system vs global vs local)
Commit하기 위해 필요한 Git 설정하기 :: git config (system vs global vs local)
2020.07.06 -
저장소 안의 파일들의 상태를 확인해보자 :: git status
저장소 안의 파일들의 상태를 확인해보자 :: git status
2020.07.06