원격 저장소 생성 ( Create the remote repository on github -- and push )
자기 컴퓨터에만 데이터를 저장해두면 언제 뻑날지 모른다. 생각이 있는?! 사람이라면 디스크를 분산해서 백업을 해두기도 하고, 외장 하드나 클라우드 서비스에 저장해두기도 한다. 이런 관점에서 원격 저장소란 파일을 백업이 가능한 곳으로 생각할 수 있다. 물론 백업을 위해서만 사용하는 것이 아니라 프로젝트를 할 때 다른 사람들과의 협업을 도와준다. Git의 원격저장소 기능은 GitHub, GitLab 등의 서비스를 사용해서 손쉽게 이용할 수 있다. 나는 이용자수나 안정성 측면을 고려해서 GitHub를 이용할 것이다. 그러면 원격저장소에 대한 흐릿한 개념을 명확하게 만들어보자.
여기서 잠깐 stackoverflow에 올라온 "what is different git with github?" 질문을 참고하여 Git과 Github이 무엇인지 잠시 생각해보면 좋겠다.
[1]
Git is a revision control system, a tool to manage your source code history.
GitHub is a hosting service for Git repositories.
So they are not the same thing: Git is the tool, GitHub is the service for projects that use Git.
//Git 은 도구이고, GitHub는 'Git을 사용하는 프로젝트'를 위한 서비스이다.
[2]
What is Git:
"Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency"
Git is a distributed peer-peer version control system. Each node in the network is a peer, storing entire repositories which can also act as a multi-node distributed back-ups. There is no specific concept of a central server although nodes can be head-less or 'bare', taking on a role similar to the central server in centralised version control systems.
What is GitHub:
"GitHub is a web-based Git repository hosting service, which offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features."
//GitHub 란, 웹을 기반으로한 Git 저장소 호스팅 서비스이다. GitHub 는 Git의 기능(분산버전관리와 소스코드관리)에 유용한 기능을 추가하여 제공한다. 참고로 웹호스팅 서비스란 '주인이 되다'라는 뜻의 Hosting과 Service가 합쳐진 것으로, 웹 구축에 필요한 호스팅 업체의 서버 자원 중 일부를 내가 주인이 되서 사용할 수 있는 서비스이다.
포스팅 스크롤의 압박에서 벗어나기 위해서 회원가입 절차나 사소한 과정은 텍스트로 설명하고 넘어가기로 했다. 말그대로 사소한 것만 생략했기에 천천히 따라하면 충분하다.
Create the remote repository on GitHub -- and Push
1. https://github.com GitHub 공식 사이트에 접속해서 계정을 만들고 Create a new repository 를 누르면 아래와 같은 화면이 뜬다. Repository name을 입력하고 Create repository를 클릭한다. 주의할 점이 있는데 Git 계정과 소스트리 계정이 같아야 한다. 필자는 소스트리 계정과 다른 계정을 사용하여 9번과 같이 오류를 경험했다.
2. repository가 생성되었다(Git이 아닌 GitHub의 저장소가 생성됨). Git의 repository와 GitHub의 repository를 연동하는 총 4가지 방법이 있다. Quick setup을 통해 연동해보자. HTTPS가 클릭된 상태로 오른쪽의 URI를 복사한다. 여기서 이 URI가 Git과 GitHub의 연결고리(!)가 된다.
3. SourceTree 에서 최상단 Repository 탭 - Add Remote... 를 클릭한다.
4. Repositroy Settings 창이 뜨면 Add 를 클릭한다.
5. Default remote를 체크하면 origin이 자동으로 입력된다. 2번에서 복사한 Git과 GitHub의 연결고리(!)인 URI를 입력한다. Remote name이란 URL을 나타내는 별명정도로 이해하면 된다. 마치 주소창에 216.58.221.110 이 아니라 google.com을 입력하여 구글에 접속하는 것과 비슷하다. Username에 GitHub 계정의 email을 입력하고 OK를 누른다.
6. OK를 누른다.
7. 왼쪽 REMOTES에 origin 원격저장소가 생성되었다.
8. 이제 로컬저장소의 브랜치 내용을 원격저장소에 저장해보자. 이 행위를 Push라고 한다. 로컬 저장소의 master브랜치만 체크하면 master만 push된다. Push 클릭.
9. 다음과 같은 오류 error 메시지가 출력되었다. 소스트리에서 progress bar가 빨갛다면 문제가 발생했다고 보면된다. 오류가 발생한 원인은 소스트리 계정과 원격저장소를 생성한 GitHub 계정이 다르기 때문이다. 원격저장소 접근권한은 원격저장소를 생성한 계정만 가진다. 이외 계정은 초대를 받고 접근권한을 획득할 수 있다. 소스트리 계정과 동일한 GitHub 계정으로 원격저장소를 생성하고 정상적으로 Push 했다.
10. GitHub를 새로고침하면 다음과 같이 화면이 바뀐다. GitHub 원격저장소에 Push가 완료되었다. GitHub 기능은 여러가지 눌러보면서 알아가기 바란다.
11. 원격저장소에 Push가 끝나고,
12. master의 파일을 수정하고 커밋하면 상단에 Push버튼에 1이 생긴다. 이것은 master와 원격저장소의 커밋차이가 1만큼 차이나는 것이다. 만약 한번더 마스터에서 커밋한다면 Push 숫자는 2가된다. 그리고 master만 커밋되서 a64f24c~ 에 있고 in/master와 testbranch3는 여전히 720778c~ 에 있다.
13. master를 orgin/master에 Push한다.
14. 원래 orgin/master는 720778c~였지만 master(a64f24c~)를 orgin/master에 Push해서 a64f24c~로 변경된다.
댓글
댓글 쓰기