Git과 Github

지은·2022년 9월 2일
0

Git

목록 보기
2/5

Git

: 소스 코드 기록을 관리하고 추적할 수 있는 분산형 버전 관리 시스템

버전 관리의 장점

  1. 파일이 변경되면 변경 이력을 저장할 수 있다.
  2. 이전 버전으로 돌아갈 수 있다.
  3. 어떤 변경 사항이 발생했는지 알아보기 쉽다.
  4. 협업하기에 좋다.
  5. 백업용 (Git으로 관리되는 파일은 Github, Gitlab, Bitbucket 등 여러 원격 저장소를 이용할 수 있다.)

  • 스냅샷 : 위의 그림처럼 특정 시점에 생성된 백업 복사본
  • commit : 이렇게 하나하나 스냅샷을 만들어주는 작업

➡️ commit을 통해 변경 사항에 대한 스냅샷이 만들어지면, 이전의 기록들에 대해 추적이 가능해지기 때문에 버전관리협업에 굉장히 유용하다.


Git 초기 설정

사용자 정보

Git을 설치하고 나서 가장 먼저 해야 하는 것은 사용자이름과 이메일 주소를 설정하는 것이다. Git은 커밋할 때마다 이 정보를 사용한다.

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

편집기

Git에서 커밋 메시지를 기록할 때, 특히 merge commit 확인 메시지가 나올 때 텍스트 에디터가 열리는데, 기본값으로 텍스트 에디터 vi가 열린다. 이를 다른 텍스트 에디터로 설정할 수 있다.

git config --global core.editor nano

설정 확인

git config --list 명령을 실행하면 설정한 모든 것을 보여주어 바로 확인할 수 있다.


Github

: Git Repository를 관리할 수 있는 클라우드 기반 서비스

  • Git으로 버전 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근할 수 있다.
  • Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝트들이 GitHub로부터 호스팅되고 있어서, 누구든 자유롭게 기여할 수 있다.
    * 오픈 소스 : 소스 코드가 공개된 소프트웨어

Github 초기설정

SSH key 등록하기

SSH(Secure SHell) : 보안이 강화된 쉘 접속으로, 터미널(CLI 환경)에서 다른 PC에 접속하거나 요청할 때 사용하며, 비대칭키를 이용해 사용자를 인증한다.

  1. 터미널에 아래의 명령어를 입력해 ssh 키 페어를 생성한다.
ssh-keygen # generate public/private rsa key pair
  • 이 명령어는 경로 ~/ .ssh./에 두 파일(id_rsa, id_rsa.pub)을 생성하는데, 이 두 파일을 ssh 키 페어라고 한다.
  • id_rsa.pub : 누구에게나 공개해도 되는 공개키(public key)
  • id_rsa : 공개하면 안되고 나만 보관하고 있어야 하는 개인 키(private key) / 비밀키(secret key)

  1. 생성된 키 페어 중 공개키(public key)를 복사하여 github에 등록한다.
cat ~/ .ssh/id_rsa.pub # ~/ .ssh 폴더 안의 id_rsa.pub을 복사한다.

  1. Github > Settings > SSH and GPG keys > New SSH key를 클릭한다.
    Title에 이름을 짓고, Key에 복사한 내용을 붙여넣으면 된다.

SSH를 이용해서 git clone하기

  1. 복제할 repository에서 Code > Clone > SSH를 클릭하고, 주소를 복사한다.

  1. 터미널에 아래의 명령어와 함께 주소를 붙여넣기 한다.
    git clone [복사한 주소]
git clone git@github.com:JaneChun/movie-app.git

  1. 명령어 ls를 입력해 폴더가 정상적으로 생성되었는지 확인한다.

Github Repository

: Git으로 관리되는 폴더

Remote Repository(원격 저장소)

: 원격 온라인 서버 상의 저장소로, 여러 사람이 함께 공유할 수 있다.

Local Repository(로컬 저장소)

: 내 컴퓨터의 저장소

  • 내가 Local Repository에서 작업한 코드를 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있다.
  • 다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있다.

Github으로 협업하기

Fork

: 다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Remote Repository로 가져오는 작업

Clone

: Fork를 하고나서, 내 Remote Repository에 있는 소스 코드를 내 컴퓨터(Local Repository)로 가져오는 작업

Push

: 내 컴퓨터에서 소스 코드를 변경하고, 변경한 내용을 commit을 통해 저장한 후, Local Repository에 기록해 놓은 commit을 Remote Repository에 업로드하는 작업

Pull request

: 내가 제안한 코드 변경사항에 대해 반영 여부를 요청하는 기능

Pull

: Push와 반대로 Remote Repository에서 변경 사항이 있을 때 Local Repository로 가져오는 작업

profile
개발 공부 기록 블로그

0개의 댓글