Git_1

YJ·2023년 4월 24일
0

▷ 오늘 학습 계획: Git 강의(1~2)

📖 01_버전관리

1) 버전관리 시스템(형상관리)

Configuration Management Systems
Version Control Systems

  • Source Data + History
  • 협업, 작업추적, 복구 등이 가능

2) Git 등장 배경

  • Source Folder, 실행파일을 버전별로 카피하여 관리
  • Local Version Control Systems
    내 컴퓨터에서 버전 관리, 협업은 어려움
  • Centralized Version Control Systems
    협업 가능, commit 하는 순간 배포, 인터넷이 안되면 작업 불가
    자신만의 version history를 가질 수 없음
  • Distributed Version Control Systems
    commit 하더라도 개인저장소 내에 적용됨(자신만의 version history)
    원하는 순간에 배포(Push) 가능, 오프라인에서도 작업 가능

3) 버전관리 시스템의 종류

CVCS → CVS, SVN 등

  • CVS
    1980년대 만들어진 형상관리 시스템
    commit 중 오류 발생 시 Rollback 이 되지 않는 등의 문제
    SVN 으로 대체됨
  • SVN
    2000년대 만들어짐

DVCS → Mercurial, Git 등

  • Git
    SVN 보다 빠른 속도와 많은 기능

4) Git 기반의 서비스

  • Github
    Git 을 호스팅 해주는 웹 서비스, 협업을 위한 기능 제공
  • Gitlab
    설치형 버전관리 시스템(소스코드 보안이 중요한 기업에서 주로 사용)
    클라우드 버전 관리 시스템(10명 이하 무료)
    Issue tracker, Git Remote Repository, API, Team, Group 기능 제공

📖 02_Installing Git

Git 다운로드

  • Git 설치 확인
    Git Bash 실행, git --version 입력해서 버전 정보 나오는지 확인

📖 03_Git 사용 준비

1) GitHub 가입

2) Git Global Configuration

git config --global user.name <username>
git config --global user.email <email>
git config --global core.autocrlf true
git config --global core.editor <editor>
git config --list  # 전체 설정 확인
git config user.name  # username으로 설정한 내용 확인
  • CRLF: 가져올 때는 LF를 CRLF로 변경, 보낼때는 CRLF를 LF로 변경

3) Git 기본 용어

Repository (Local Repository, Remote Repository)

소스코드가 저장된 Branch가 모여있는 디스크상의 물리적인 공간

Checkout

특정 시점이나 Branch의 소스코드로 이동하는 것(Branch, Commit, Tag)
과거 여러 시점의 코드로 이동 가능

Stage

작업할 내용이 올라가는 임시 저장 영역
작업한 내용중 commit에 반영할 파일만 선별할 수 있음

Commit

작업할 내용을 Local Repository에 저장하는 과정
각각의 commit은 의미 있는 변경단위
변경에 대한 설명을 commit log로 남긴다.

Tag

임의의 commit 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표
Tag가 붙은 commit은 tag name으로 쉽게 checkout 가능

Push

local repository 내용 중에 remote repository에 반영되지 않은 commit을 remote repository로 보내는 과정(Push하는 순간 다른 개발자들에게도 영향을 준다)

Pull

Remote repository 내용 중에 local repository에 반영되지 않은 내용을 가져와서 local repository에 저장하는 과정
다른 팀원이 변경하고 push한 내용을 가져올 수 있음

  • push 과정에서 conflict → pull을 통해 remote repository의 변경 내용을 local repository에 반영하여 conflict를 먼저 해결하고 push 재시도

Branch

특정 시점(commit 단위)에서 분기하여 새로운 commit을 쌓을 수 있는 가지를 만드는 것
개발의 주축이 되는 branch를 master branch 또는 main branch라고 함
모든 branch는 최종적으로 다시 master branch에 merge되는 형식으로 진행

Merge

Branch의 반대 개념으로 하나의 Branch를 다른 Branch와 합치는 과정
Merge 되는 두 Branch는 주종관계 성립

  • Merge 과정에서 conflict → Diff를 수정하여 conflict 해결 뒤에 merge

▷ 내일 학습 계획: Git 강의(3~4)

[이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.]

0개의 댓글