1. Git, 버전관리란?

정현우·2021년 9월 1일
2

Git Basic to Advanced

목록 보기
1/9
post-thumbnail

Git의 버전관리

  • Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

나에겐 버전 관리의 시작이 바로 git이었다. git을 나름 강의 처럼 진행한 경험도 있지만, 대학교 1~2학년때 처음 사용할때는 지옥이나 다름 없었다. 컨셉이 쉬운 것에 비해, 생각보다 사용이 너무 난해 했기 때문이다. 이제 진짜 기초 부터 글로 정리 하며, 나아가 다양한 상황에 대해 알아보자.

사실 강제로 인강을 듣는 겸,, 해당 강의 내용을 차용하고, 덧붙여서 글로 정리한다. 공개 강의 링크

Git 특징

  • 깃(Git /ɡɪt/)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.
  • 오픈소스계의 영원한 아이돌 리누스 토르발스는 리눅스 커널을 관리하는 기존 툴이 엉망인 것에 너무 빡친 바람에 Git이라는 소스관리 툴을 만든다. 리누스는 하도 빡친 나머지, 단 2주만에 완성하는 기염을 토했다. (그러고는 후에 “Git 만드는게 제일 쉬웠어요”라는 인터뷰로 나와 같은 빠돌이를 지리게 했다.) 출처: 나무위키

1. 가지치기와 병합

가지치기와 병합

  • 여러가지 작업을 동시에 진행할 수 있다.
  • 큰 뿌리 흐름 기반으로 가지 처럼 뻗어나가는, 새로운 버전 또는 기능을 담은 브랜치(branch)를 만들고, 합치고, 다시 뻗어 나간다.

2. 가볍고 빠름

  • 구 버전 관리 시스템으로 유명한, (엔터프라이즈 시스템에서 실제로 많이 사용했었음) SVN과 비교하면 극명하게 차이가 난다.
  • SVN는 중앙 집중형 관리 시스템이라 코딩을 하는 내내 중앙 서버와 네트워킹이 필요하다.
  • 하지만 Git은 로컬이 작업의 중심이다. 각각의 사용자가 로컬에서 작업하고 원격 저장소에 올리면서 합친다. 그래서 네트워킹이 push라는 작업할 때만 필요하다.
  • 위키백과 SVN, CVS의 업그레이드

3. 분산작업에 특화

  • 분산 작업에 매우 효율적이다. 위 (2) 사항의 특징을 기반해서 (3) 특징이 가능한 것이다.
  • 각각의 사용자가 분리된 환경(로컬)에서, 알아서, 개발만 집중하고 remote(원격 저장소)에 올린다.
  • 물론 하나의 브랜치로 모두 병합하는 데에 관리자가 필요한 경우도 존재한다.

4. 데이터 무결성 보장

  • 프로젝트 코드의 무결성을 보장한다. 모든 파일은 '체크섬'이라는 검사 과정을 거치고, 해당 값은 16진수 문자열로 되어 있다.
  • 해당 체크섬 값이 commit id가 된다. commit id가 같은 것은 파일 구성이 완벽하게 같다! 라는 것을 의미하게 된다. 체크섬이란?

5. 준비 영역의 존재

  • 준비 영역이 있다. 수정한 내용을 '검토'하는 과정이 있다는 걸 의미한다.
  • 변경된 파일은 git add를 통해 staging area 로 간다. 해당 area의 사항을 commit을 통해 '저장 분기점' 을 만들고, 그 '저장 분기점'을 가진 '브랜치'를 원격 저장소에 Push 한다.
  • 오픈소스도 엄청난 특징이지만, 너무 유명하니까 짚고 넘어가진 않겠다.

Git 설치와 초기 설정

깃 설치하기

  • 홈페이지 에서 설치하자
  • window는 bash / linux기반 os는 터미널에서 바로 사용 가능하다
    • 윈도우에서 사용하는 깃 배쉬 프로그램은 아래와 같다.
  • 해당 터미널 / bash에서 git 을 쳐보면 아래와 같다.

깃 설정하기

1. 사용자 정보 설정해주기

  • 글로벌(전역환경변수) 설정으로 사용자 정보를 등록해야 한다.
  • 아래에 등록한 정보가 코드를 반영할 때 자동으로 등록된다.
git config --global user.name "name"
git config --global user.email user@email.com

# git을 사용하는 프로젝트 마다 다른 사용자 정보를 사용하고 싶으면
# --global 옵션 만 빼주면 된다. 

2. 설정 정보 확인하기

git config --list # 위에 설정된 내용 확인이 가능하다.

원격 저장소 생성하기 (git 저장소 생성)

  • 우선 원격 저장소에 올리고 싶은 프로젝트 (파일)로 가서 git init을 해주자.
  • 그러면 숨겨진 파일 (.git) 이 생긴다. 해당 파일이 git에 대한 설정값이 있다.

profile
도메인 중심의 개발, 깊이의 가치를 이해하고 “문제 해결” 에 몰두하는 개발자가 되고싶습니다. 그러기 위해 항상 새로운 것에 도전하고 노력하는 개발자가 되고 싶습니다!

0개의 댓글