치춘짱베리굿나이스

Github, Git 기본 <레포지토리 생성 및 클론> 본문

이론적인 부분들/Git Github

Github, Git 기본 <레포지토리 생성 및 클론>

치춘 2022. 7. 23. 14:03

Github, Git 기본 <레포지토리 생성 및 클론>

깃허브로 작업하면서 사용하는 명령어나 과정을 정리해본다

포스팅이 많이 길어져 정말 간단하게 협업이나 개인 작업하면서 딱 필수로 사용하는 정도만 정리하고, 분리하였다

추가적인 내용 (squash, rebase, cherry-pick 등) 등은 따로따로 게시글을 분리해야 할 정도로 내용이 많기 때문에…

1. 레포지토리 생성

https://github.com 에 접속해서 로그인하고, 상단바 오른쪽 끝의 + 버튼을 누른다

New repository는 깃허브에서 바로 레포지토리를 파는 방식

Import repository는 다른 서비스 (svn 등) 에서 작업 내역을 가져오는 방식

New gist는 Gist를 만드는 방식 (간단한 코드공유를 하기엔 좋지만 디렉토리 관리가 안 돼서 협업에는 힘들다

New organization은 개인 계정이 아닌 팀 계정 (그룹) 을 만들어서 거기에 레포지토리를 추가하는 방식이다

토이 프로젝트는 New repository로 개인 레포지토리를 만들어 작업하는 경우가 많지만 협업을 할 때는 보통 새로운 그룹을 만들어서 팀원들을 모두 같이 작업을 한다

개인 레포지토리 생성

  1. 템플릿
    • 사전에 생성한 템플릿으로부터 레포지토리를 생성한다
    • 사전에 생성한 템플릿이 없으면 무시해도 된다
  2. 레포지토리 이름
    • 주소에도 해당 이름이 그대로 들어간다
    • 추후에 바꿔도 상관없다
  3. 레포지토리 설명
    • 간략한 설명이다
    • 하단의 Add a README file을 체크하고 레포지토리를 생성하면 여기 적힌 내용이 리드미에도 들어가지만 정말 짧게 작성하는 설명이기 때문에 스킵해도 문제없다
  4. Public / Private
    • 남들에게 레포지토리가 보여져도 상관 없다면 Public으로 생성
    • 남들에게 보이면 안되는 코드들이라면 Private로 생성
    • Private여도 코드를 볼 수 있는 사람들을 선택적으로 추가할 수는 있다
  5. Add a README file
    • README.md 파일을 만들고 시작하고 싶을 때 체크한다
  6. ADD .gitignore
    1. gitignore template 선택 드롭다운에서 프로젝트의 프레임워크를 선택하면, 해당 프레임워크에서 자주 쓰이는 gitignore 세팅으로 파일이 생성된다
    2. .gitignore 파일 안에 적힌 파일명들은 깃이 인식하지 않으므로, 남들에게 보여져서는 안 될 key나 토큰, 또는 용량이 너무 큰 node_modules 등의 파일을 추가하는 것을 추천한다
    3. 예를 들어 드롭다운에서 node를 선택하면, .gitignore에는 자동으로 node_modules 와 같은 대용량 (그리고 굳이 깃에 올릴 필요 없는) 파일들이 자동으로 설정되어 있어서 편리하다
  7. 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을 검색하자

 

폴더가 잘 복제되었다

레포지토리와 완전히 같은 히스토리와 파일들을 가지고 있다


 

Comments