치춘짱베리굿나이스
Github, Git 기본 <레포지토리 생성 및 클론> 본문
Github, Git 기본 <레포지토리 생성 및 클론>
깃허브로 작업하면서 사용하는 명령어나 과정을 정리해본다
포스팅이 많이 길어져 정말 간단하게 협업이나 개인 작업하면서 딱 필수로 사용하는 정도만 정리하고, 분리하였다
추가적인 내용 (squash, rebase, cherry-pick 등) 등은 따로따로 게시글을 분리해야 할 정도로 내용이 많기 때문에…
1. 레포지토리 생성
https://github.com 에 접속해서 로그인하고, 상단바 오른쪽 끝의 + 버튼을 누른다
New repository
는 깃허브에서 바로 레포지토리를 파는 방식
Import repository
는 다른 서비스 (svn 등) 에서 작업 내역을 가져오는 방식
New gist
는 Gist를 만드는 방식 (간단한 코드공유를 하기엔 좋지만 디렉토리 관리가 안 돼서 협업에는 힘들다
New organization
은 개인 계정이 아닌 팀 계정 (그룹) 을 만들어서 거기에 레포지토리를 추가하는 방식이다
토이 프로젝트는 New repository
로 개인 레포지토리를 만들어 작업하는 경우가 많지만 협업을 할 때는 보통 새로운 그룹을 만들어서 팀원들을 모두 같이 작업을 한다
개인 레포지토리 생성
- 템플릿
- 사전에 생성한 템플릿으로부터 레포지토리를 생성한다
- 사전에 생성한 템플릿이 없으면 무시해도 된다
- 레포지토리 이름
- 주소에도 해당 이름이 그대로 들어간다
- 추후에 바꿔도 상관없다
- 레포지토리 설명
- 간략한 설명이다
- 하단의 Add a README file을 체크하고 레포지토리를 생성하면 여기 적힌 내용이 리드미에도 들어가지만 정말 짧게 작성하는 설명이기 때문에 스킵해도 문제없다
Public
/Private
- 남들에게 레포지토리가 보여져도 상관 없다면
Public
으로 생성 - 남들에게 보이면 안되는 코드들이라면
Private
로 생성 - Private여도 코드를 볼 수 있는 사람들을 선택적으로 추가할 수는 있다
- 남들에게 레포지토리가 보여져도 상관 없다면
Add a README file
- README.md 파일을 만들고 시작하고 싶을 때 체크한다
- ADD
.gitignore
- gitignore template 선택 드롭다운에서 프로젝트의 프레임워크를 선택하면, 해당 프레임워크에서 자주 쓰이는
gitignore
세팅으로 파일이 생성된다 .gitignore
파일 안에 적힌 파일명들은 깃이 인식하지 않으므로, 남들에게 보여져서는 안 될 key나 토큰, 또는 용량이 너무 큰node_modules
등의 파일을 추가하는 것을 추천한다- 예를 들어 드롭다운에서 node를 선택하면, .gitignore에는 자동으로 node_modules 와 같은 대용량 (그리고 굳이 깃에 올릴 필요 없는) 파일들이 자동으로 설정되어 있어서 편리하다
- gitignore template 선택 드롭다운에서 프로젝트의 프레임워크를 선택하면, 해당 프레임워크에서 자주 쓰이는
- Choose a license
- 해당 레포지토리의 라이선스를 선택한다
- 코드를 배포할 때, 재배포나 상업적 이용 등의 이야기가 들어간다
- 토이프로젝트엔 그렇게까지 신경쓸 필요 없다… 만 상업적으로 사용할 거면 찾아보자
모든 설정이 완료되면 Create repository
를 눌러 레포지토리를 생성하자
팀 (organization) 생성
이번에는 팀 organization을 생성해 보자
모르는 사이에 요금제 종류가 늘은 것 같다…?
돈을 내면 보안, CI/CD, 배포 등의 기능이 추가된다
Enterprise
는 레알 기업용이라고 보면 된다
나는 돈없는 학생이니 free organization을 생성하겠다
간단하게 이 그룹 이름과 연락처를 적으면 된다
개인이 만든 그룹이면 My personal account
를 선택하고, 팀이나 교육, 회사에 종속되어 있으면 A business or Institution
을 선택하자
마지막은 약관동의 하라는 내용이다
다음은 같이 작업할 사람을 초대하는 부분이다
작업할 친구가 없다면 (흑흑) 스킵해도 상관없다
엄청 긴 설문지… 가 나온다
어떤 목적으로 이 그룹을 사용할 것인지 묻는 문항들이다
다른건 다 적당히 입력하고, 마지막의 Do you have an existing repository for your project
는 해당 팀에서 작업할 레포가 사전에 있는지 물어보는 문항이다
yes를 누르면 Github, Bitbucket, Gitlab 등 어떤 레포지토리에 작업 레포가 있는지 물어본다
지금 단계에선 실제로 불러와주지는 않는다 (…)
그룹이 생성되었다
Create a new repository
를 누르면 개인 레포지토리와 같은 형태의 레포가 그룹에도 생성되고, 그룹원들이 모두 해당 레포지토리에 접근할 수 있다
나머지는 개인 레포지토리와 거의 비슷한 방식으로 사용할 수 있다 (기본적인 커맨드와 clone 등)
기존 레포지토리 fork하기
기존에 있는 레포지토리 (개인 레포든 팀 레포든 상관없다) 를 포크해서 내 레포지토리에 가져올 수 있다
포크한 시점에서 내 레포지토리와 기존 레포지토리는 독자적인 커밋 노선을 가지며, 풀 리퀘스트를 올리고 합쳐야 내가 변경한 코드들이 원본 레포지토리에도 잘 반영된다
레포지토리 우상단의 Fork
를 누르자
레포지토리를 생성할 때처럼 이름과 설명을 적는 칸이 나온다
기본값으로 원본 레포지토리의 설정값이 들어있다
바꾸고 싶다면 바꾸면 된다
레포지토리가 잘 포크되었다면 레포지토리 이름 옆에 포크 레포지토리라는 의미의 아이콘이 생기고, 아래에는 어디서 포크된 레포인지 링크가 걸린다
2. 레포지토리 로컬환경으로 복제하기, git clone
Code ⇒ 링크를 복사하자
$> git clone [복사한 링크]
로컬에 클론받을 때는 위의 명령어를 입력하면 된다
vscode에서 클론받는 방법도 있다
명령 팔레트를 열고 clone을 검색하자
폴더가 잘 복제되었다
레포지토리와 완전히 같은 히스토리와 파일들을 가지고 있다
'이론적인 부분들 > Git Github' 카테고리의 다른 글
Github PR 리뷰하기 (0) | 2022.07.23 |
---|---|
Github, Git 기본 <Pull Request, pull, 충돌 해결> (0) | 2022.07.23 |
Github, Git 기본 <status, add, commit, push> (0) | 2022.07.23 |
Gist 사용하기 + 삽질의 기록 (0) | 2022.07.19 |
Github Wiki 작성하기 (0) | 2022.05.05 |