#01 git 과 github의 관계

2023. 11. 9. 18:26· 기록/TIL

 

- 개발자라면 떼놓으려고 해도 떼놓을 수 없는 git 과 github를 정리해보자

- 특강을 들으면서 정리해 둔 내용

 


# 버전이란?

- “프로젝트 범위”에서 유의미한 수정(변화)

 

1. 버전 관리 시스템(Version Control System, VCS)

  • 버전 관리
  • 백업, 복구
  • (선택) 협업

 

2. 버전 관리 시스템의 종류

  • 로컬식 : 내 컴퓨너 안에서만, 협업 X
  • 중앙 집중식 VCS : 서버에서만 버전 관리(백업), 파일 하나하나
  • 분산식 VCS : 모든 컴퓨터에서 "프로젝트 단위" -> 번거로운 / 위험성 X (ex. Mercurial, Bazaar, Git-Github)

 

3. 깃과 깃허브의 관계

깃은 OO식 버전 관리 시스템

  • 깃은 우리들 컴퓨터에 설치하는 프로그램 “버전 관리”
    • 우리 컴퓨터에서만 일어나는 일
    • 만약 깃만 있다면 로컬식이라고 할 수 있음
    • 깃과 깃허브를 같이 쓰는 것이 분산식
  • 프로젝트 폴더 안에 깃이라는 폴더가 생김
    • 버전이 생기고, 수정할 때 마다 깃에 변경 사항을 입력하면(명령어 입력하면) 깃 폴더 안에 버전 이전 상태를 기억하고 있음
    • 깃은 이전 상태를 기억하고 돌아갈 수 있게 함
    • 깃 폴더는 단 하나만 생성됨, 변경된 버전들은 새로운 폴더들로 생김

 

결론적으로

굳이 깃과 깃허브를 같이 사용하는 이유는 깃은 우리 컴퓨터에서만 동작하는 로컬식 버전 관리 시스템이기 때문에 협업할 때 사용하는 분산식 시스템 깃허브를 같이 사용하는 것 이다!

cf. 운영체제 : #스냅샷, #메모리(영역) 운영체제의 우선순위 중 가장 중요한건 메모리!

 

 

✨ 깃은 내 컴퓨터에 깔아두는 버전 관리 시스템 + 깃허브 소통 역할 까지

✨ 깃허브는 서버에 깔려있는 버전 관리 시스템 + 구글 드라이브 역할 까지

 

 


# CLI vs GUI

CLI(Command-Line Interface)

  • 명령어 라인 인터페이스
  • 명령어로 내가 원하는 것을 얻는 것
  • cf. 쉘shell, Bash → 명령어를 쓰는 창

 

GUI(Graphic User Interface)

  • 명령어는 모르고 그래픽으로 얻는 것

 

1. 자주 쓰이는 명령어

  • init : 초기화
    • 프로젝트 폴더 안에 git 폴더를 만들 때 사용
    • 지금부터 니가 이 프로젝트 버전 관리 담당자야 하는 것
  • status
  • add
  • commit
  • log

 

명령어를 사용해 보자

  • git add : 버전 관리해 줄 파일 추가
  • git commit : "변경사항" 저장한다(=버전을 생성) / 커밋을 찍는다 (커밋 = 버전)
  • git push : commit된 버전들을 깃허브에 올리는 명령어
  • git clone : 깃허브 레파지토리를 컴퓨터에 처음 받아올 때
  • git pull : 깃허브 레파지토리에 업데이트된 내용이 있을 때, 그 내용을 업데이트 하는 명령어

 

cf. 커밋은 지울 수 있을까요? NO

 

2. add 와 commit의 관계

add 하고 파일이 임시 공간에 들어간 후 커밋해야 버전을 저장하는 공간에 들어간다.

  • 임시 공간: 다음 커밋을 치기 전까지(=버전 준비 중) 변경 사항을 모아서 commit을 통해서 버전을 만들어낸다.

📌 IDE(integrated development environment) : 통합 개발 환경

 

 


# 브랜치(Branch)

  • git branch → 나뭇가지 목록을 보여주는 명령어
  • 예를들어 git branch feature/login 하면 추가 됨
  • 기능 추가
  • 핫 픽스(에러 해결)
  • 버전 별로 나누기

 

1. 브랜치 이름지을 때

  • main branch
  • feature/이름 (예를들어 feature/login, feature/product)

 

2. 새로만든 브랜치로 이동할 때

  • git checkout feature/login

 

3. 만든 브랜치를 깃허브으로 올릴 때

  • git push origin feature/login

 

수업 중 나온 질문

Q. master하고 main은 다른가요? 

같은것! 기본 브랜치 이름이던 master가 차별적 의미를 담고 있어 최근 main으로 바뀐것.

 

📌강사님 블로그 

https://songacoding.tistory.com/

저작자표시 (새창열림)

'기록 > TIL' 카테고리의 다른 글

#04 IT 아티클 - 챗GPT  (0) 2023.12.10
#03 package.json은 어떻게 구성되어 있을까?  (0) 2023.12.01
#02 사용해보고 싶은 CSS 아카이브  (0) 2023.11.14
'기록/TIL' 카테고리의 다른 글
  • #04 IT 아티클 - 챗GPT
  • #03 package.json은 어떻게 구성되어 있을까?
  • #02 사용해보고 싶은 CSS 아카이브
개발중인제이
개발중인제이
제이로그개발중인제이 님의 블로그입니다.
개발중인제이
제이로그
개발중인제이
전체
오늘
어제
  • 분류 전체보기 (100)
    • 기록 (6)
      • 회고 (1)
      • TIL (4)
      • 일상 (0)
      • 리뷰 (1)
    • Web (4)
    • Front-end (81)
      • HTML & CSS (4)
      • JavaScript (9)
      • 모던자바스크립트 (14)
      • React (21)
      • Next (6)
      • TypeScript (11)
      • git & github (2)
      • etc (14)
      • 프로젝트 (0)
    • Back-end (0)
    • 알고리즘 & 자료구조 (0)
    • 패스트캠퍼스 (8)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 글쓰기
  • 관리

공지사항

인기 글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발중인제이
#01 git 과 github의 관계
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.