(SEB_FE) Section1 Unit7 Git / Github

PYM·2023년 2월 25일
0

(SEB_FE) SECTION1

목록 보기
28/38
post-thumbnail
  1. Git의 환경설정을 할 수 있다.
  2. 버전 관리 시스템의 필요성을 이해할 수 있다.
  3. Github과 Git의 관계에 대해 이해할 수 있다.
  4. local repository와 remote repository의 차이를 이해할 수 있다.

프로그래밍을 할 때, 문법이 틀렸거나 코드를 잘못 작성한 흔적을 뒤늦게 발견할 때가 있다. 작성중이라면 ctrl + z로 돌아갈 수 있지만, 에디터를 종료해버렸다면 이전 코드로 돌아갈 수 없다.

이런 때를 대비해서 이전에 작성한 내용을 보존해야 할 필요가 있다. 이렇게 이전에 작성한 내용을 보존해 주는 시스템이 바로,
버전 관리 시스템(Version Control System)이다.

⭐ Git: 가장 강력하고 대중적인 버전 관리 시스템

Git을 학습하며 버전 관리와 협업의 기본을 학습하고, 오픈 소스(Open Source : 소스 코드가 공개된 소프트웨어) 생태계에 기여할 수 있는 멋진 개발자가 되어보자!

💫 버전 관리를 사용하는 이유

  1. 파일이 변경되면 변경 이력을 저장할 수 있다.
  2. 이전 버전으로 돌아갈 수 있다.
  3. 어떤 변경 사항이 발생했는지 알아보기 쉽다.
  4. 협업에 편리하다.
  5. 백업용으로 좋다.

  • Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된
    ‘분산형 버전 관리 시스템’
  • 특정 시점에 생성된 백업 복사본 = 스냅샷
  • 하나하나 스냅샷을 만들어 주는 작업 = commit

⭐ Git은 뭐고, Github는 뭔데?

  • Git: 소스 코드 기록을 관리하고 추적할 수 있는 '버전 관리 시스템'
  • Github: Git Repository를 관리할 수 있는 클라우드 기반 서비스

💫 오픈 소스

  • 오픈 소스(소스 코드가 공개된 소프트웨어)는 누구나 자유롭게 해당 기능을 추가하고 개선할 수 있다. 이 작업을 기여한다(contribute)고 함.

⭐ Git Repository

  • 저장소. 말 그대로 파일이나 폴더를 저장해 두는 곳

  • 내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야 한다.
    Git으로 관리되는 폴더 = Git repository

  • Git repository 는 Remote Repository & Local Repository 두 종류의 저장소를 제공

  • 작업할 때는 Local Repository에서 할 수 있고
    내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유

  • 물론 다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Local Repository 로 가지고 오는 것도 가능!

⭐ React 프로젝트에 contribute하기

  1. Fork: 먼저 React 원격 저장소를 내 원격 저장소로 가지고 오는 작업
    Fork 를 하고나면 나의 Remote Repository에 React 코드를 옮겨온 상태

  2. Clone: 이 코드를 수정하기 위해서는 내 컴퓨터로 가져오는 작업
    Remote Repository에 있는 코드를 Clone 해서 내 컴퓨터로 가지고 옴.

  3. 내 컴퓨터에서 React 소스코드 변경 작업을 완료한다.

  4. Push: 변경된 내용을 commit을 통해 저장해 준 뒤, Remote Repository에 반대로 올려주는 작업
    Local Repository에 기록해 놓은 commit을 Remote Repository로 업로드하는 것!

  5. Pull request: Push를 완료 후, 내가 제안한 코드 변경사항에 대해 반영 여부를 요청하는 작업

  • Pull: Local➡Remote가 Push라면, Remote의 변경내용을 Local로 받아오는 건 Pull

⭐ 이제 진짜 깃 설정 START!

💫 최초 설정

git config --global user.name "유저이름"
git config --global user.email "유저 이메일"

위 두 명령어로 앞으로 진행할 Git 커밋 내역에 기록할 사용자 이름이메일 주소를 설정.

  • --global 옵션으로 설정하면, 사용자 홈에 저장되므로 git을 설정할 때 처음에 단 한 번만 입력해도 된다. 나중에 github의 사용자 이름이나 이메일을 변경한다면, 이 명령어를 다시 입력해야 한다.

  • 만약 여러 프로젝트를 진행하고 있어서, 프로젝트마다 다른 사용자 이름과 이메일 주소를 사용하고 싶으면 --global 옵션을 빼고 명령을 실행할 수 있다.

💫 추가 인증 방법; SSH를 이용하는 방법

sshSecure shell의 줄임말로, 보안이 강화된 shell 접속을 의미.

  • CLI 환경(터미널)에서 다른 PC에 접속하거나 요청할 때 사용하며, 비대칭키를 이용해 사용자를 인증

💫 SSH 키 생성

  • ssh 키는 비대칭키로 구성되며, 그 이름에서 유추할 수 있듯이 두 개의 키가 서로 대칭이 되지 않는 형태로 존재

1. ssh 키 페어 생성

ssh-keygen

프롬프트에 다음 명령어 실행 후, 이후 뜨는 질문들에 Enter 누르면(3번) 경로 ~/.ssh./ 에 두 파일 id_rsaid_rsa.pub 를 생성.

이 두 파일은 ssh 키 페어로,

  • id_rsa.pub: 누구에게나 공개해도 되는 공개키(Public Key)
  • id_rsa: 공개되면 안 되고 나만 보관하고 있어야 하는 개인키(Private Key) 또는 비밀키(Secret Key)

2. 공개키 복사

cat ~/.ssh/id_rsa.pub

위 명령어 실행 후 뜨는 공개키 복사

3. Github에 공개키 등록

setting > SSH and GPG keys 로 들어가 New SSH key 버튼 클릭
title 작성 후 key칸에 복사한 공개키 붙여넣고 Add SSH Key 버튼 클릭

4. 확인

임의의 Repository의 code 버튼 클릭하여 SSH 주소 복사한 뒤
프롬프트에 아래 명령어 치면 정상적으로 clone이 이루어져야 함

git clone [복사한 SHH 주소]
profile
목표는 "함께 일하고 싶은, 함께 일해서 좋은" Front-end 개발자

0개의 댓글