Git 개요

김병욱·2020년 4월 19일
0

Git

목록 보기
1/2

Git 이란 ?

형상 관리 도구 중 하나이다. 버전관리 시스템이라고도 불리운다.
Git 은 분산형 관리 시스템이다. 소스코드를 여러 개발 pc의 저장소에 분산해서 저장한다.
그렇기 때문에 중앙 서버에 장애가 발생해도 로컬 저장소에 커밋을 할 수 있으며, 로컬 저장소들을 이용하여 중앙 저장소의 복원도 가능하다.

Git의 장점

소스코드를 주고 받을 필요없이, 같은 파일을 여러명이 동시에 작업하는 병렬 개발이 가능하다.
즉, 브랜치를 통해 개발한 뒤, 본 프로그램에 합치는 방식(Merge)로 진행할 수 있다.
분산 버전 관리이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있으며, 중앙 저장소가 날아가도 다시 원상 복구할 수 있다. 프로그램이나 패치를 배포하는 과정도 간단해진다. (pull을 통한 업데이트, patch 파일 배포)

Git과 github

  • git : 형상 관리 도구 (버전 관리 시스템)
  • github : 형상 관리도구 (버전 관리) 웹 호스팅 서비스

Git (형상 관리 도구)

프로젝트를 진행하면서 소스 코드를 USB나 메일로 주고 받는 건 엄청난 낭비임과 동시에 보안성 위험이 있다. 그렇기 때문에 형상 관리 도구를 사용한다. 형상 관리 도구를 사용하면 변경을 쉽게 되돌릴 수 있다. 소스코드를 과거 특정 시점 으로 스냅샷 처럼 되돌리거나, 특정 시점의 변경 사항을 취소하거나, 두버전의 소스코드를 비교하는 등의 일이 가능하다.

Git 웹 호스팅 시스템

협업하고 있는 코드를 저장할 서버가 필요하다. 버전관리 시스템을 지원하는 웹호스팅 서비스의 기능을 통해 push, pull, request 같은 이벤트에 반응하여 자동으로 작업(배포 등)을 실행할 수 있다.

Git GUI

너무 많은 git 명령어를 자유자재로 외울 자신이 없을 때에는 GUI를 사용할 수도 있다.
Github Desktop, SourceTree, GitKraken..

관련 용어

  • Repositiory : 저장소를 의미, 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 히스토리를 확인 할 수 있다.
  • Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점
  • Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치
  • Commit : 현재 변경된 작업 상태를 점검을 마치면 저장소에 저장하는 작업
  • Head : 현재 작업중인 Branch를 가르킨다
  • Branch : 가지 또는 분기점을 의미, 작업을 할때 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶으면 Merge를 하여 작업을 한다
  • Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미

기초 명령어

git init

  • 버전 관리하고 싶은 폴더에서 초기화를 하는 준비

git branch

  • 독립적인 공간을 만든다.
  • 새로 만든 branch lab1은 master와 완전히 동일한 상태를 가진다.
  • 브랜치에서 수정을 한 후 commit하면 lab1에만 기록되며 master 브랜치에는 아무런 영향도 주지 않는다.
  • 원하는 만큼 빠르게 브랜치를 만들 수 있다.
  • 실험 중 다른 브랜치로 돌아가야 할 때 : checkout master 로 head를 옮겨야 한다. (작업 중인 위치를 가르키는 가상의 커서가 존재하는데 이를 git에서는 head라 한다)
  • 실험 성공 : lab1 브랜치의 내용을 마스터 브랜치와 병합(Merge) 한다.
  • 실험 실패 : lab1 브랜치를 삭제한다.

checkout

  • 독립된 작업 공간인 브랜치를 자유롭게 이동할 수 있다.

git commit

  • 의미있는 수정 작업이 끝났을 때 마침을 알리는 작업

pull

  • 리모트 저장소의 변경된 내용을 로컬(내 컴푸터)저장소에 적용하는 작업

master

  • git init을 했을 때, default로 만들어지는 가지가 master 이다

동료와 함께 작업

  • github or bitbucket

git은 remote 저장소를 지원한다.
github가 바로 remote 저장소 이다.
bitbucket은 5명까지 공동 작업이 가능하다. (그 이상은 유료)
github는 private가 유료이다.

profile
개발스터디

0개의 댓글