[git] Git과 Git hub

Hyebin·2021년 3월 31일
0

Git

목록 보기
1/3
post-thumbnail

Git이란?

소스코드를 효과적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템'이다.

분산형 버전 관리라는 것은 하나의 중앙 서버가 존재하고, 클라이언트들은 각자의 컴퓨터 저장소에 중앙 서버의 사본을 가지고 작업을 하는 것을 말한다.

Git의 가장 큰 장점은 소스 코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수있다는 것이다.

Git Hub란?

Git을 사용하는 프로젝트를 지원하는 '웹호스팅 서비스'로 루비 온 레일스로 작성되었다.

Git을 업로드 할 수 있는 웹사이트로 그래픽 유저 인터페이스(GUI)를 제공한다. Git Hub는 Git을 이용한 버전 제어와 공동 작업을 위한 가장 인기 있는 플랫폼이다.


Git Repository

Git의 저장소이다. 저장소란 말처럼 파일이나 폴더를 저장하는 곳이다.

git repository는 크게 Local과 Remote 두 종류로 나눠 볼 수 있다.

  • Local repository
    쉽게 말해 내 PC에 저장하는 저장소라 보면 된다.
    원격 저장소에 파일을 git 명령어를 통해 내 컴퓨터로 불러올 수 있다.
  • Remote repository
    파일이 원격 저장소 전용 서버에서 관리되고 여러 사람이 함께 공유하기 위한 저장소이다.

위 그림에서 로컬 저장소에는 working directory와 staging Area가 존재한다.

  • working directory
    내 컴퓨터에 있는 작업 디렉토리를 말한다. 원격 저장소에서 받아온 파일이나 디렉토리를 수정하거나 생성할 수 있는 작업을 할 수 있는 디렉토리이다.
  • staging Area
    이전에 충돌하거나 선택적으로 버전 관리(파일의 변경사항을 파악)를 받게 하기 위해 만들어졌다. 변경사항이 있는 파일 중 내가 버전관리를 받기 위해 설정한 파일들이 staging Area에 임시적으로 저장된다.
    어떤 파일이나 디렉토리를 버전 시스템에 의해 버전 컨트롤을 받게 하기 위해서는 반드시 이 staging Aread에 올리는 과정을 거쳐야 한다.

Git Hub 버전 관리의 전반적인 흐름

branching : 가지를 새로 치는 것
merging : 가지를 다시 합치는 것

프로젝트 개발시 master 브랜치에 바로 push를 하지 않고 가지처럼 여러 브랜치를 나눠 목적에 맞는 기능을 구현하게 된다면 가지를 다시 합치게 된다.

필요에 따라 브랜치를 만들 수 있고, 위로 갈수록 (master) 안정성이 높아질 뿐만 아니라 버전관리에도 용이하다는 장점이 있다.

아래 그림을 예를 들면,
master 브랜치는 사용자들이 사용하는 서비스 즉, 버그가 없거나 최소화한 소스 코드이고,
develop 브랜치는 개발중인 버전의 소스 코드를 관리한다. 여기서 충분한 테스트와 버그를 거친다음에 master 브랜치에 merging된다.
feature는 하나하나의 기능들을 담고 있다. 기능들을 다 완성한 다음에 develop으로 merging 된다.

0개의 댓글