Git 개념 정리 (2) - Git Branch , Merge

Git Branch

코드를 통쨰로 복사하고 나서 다른 개발자들과 독립적으로 개발을 진행할 수 있도록 branch를 나눌 수 있다.

Git branch는 commit 사이를 이동할 수 있는 포인터와 비슷한 개념으로, 기본적으로 Git은 master branch를 먼저 만든다. 이후 commit을 하게 되면 master branch 는 자동적으로 가장 마지막(최근) commit을 가르킨다.

branch 생성하기

git branch 는 git branch <branch명> 명령어로 만들 수 있다. branch를 새로 만들면 가장 마지막 commit을 가르키게 된다.

1
C:\Users\katd6\OneDrive\바탕 화면\hello-git>git branch testbranch

그럼 두 branch중에 현재 working directory에서 작업중인 branch를 어떻게 나눌까?

Git은 HEAD라고 하는 로컬 Branch를 가르키는 특수한 pointer가 존재한다.

1
2
3
C:\Users\katd6\OneDrive\바탕 화면\hello-git>git branch -a
* master
testbranch

branch 이동하기

git checkout <이동할 branch명>

git branch 는 checkout 명령어로 이동할 수 있다. 아까 정리했던것처럼 Git은 HEAD라고 하는 현재 작업중인 Local branch를 가르키는 pointer인 HEAD가 존재한다고 하였다. git checkout 명령어로 로컬 branch를 바꾼다는 것은 결국에 이 pointer가 가르키는 branch를 변경하겠다는 말이랑 동일하다.

Read more

Git 개념 정리 (1) - Git vs SVN , Git file status

Git 이란?

형상관리(버전관리)를 하기 위한 tool로써 소스코드를 효과적으로 관리하기 위해 개발된 분산형 버전 관리 시스템이다.
형상관리를 하기 위한 또다른 대표적인 tool로 SVN (subversion)이 존재한다. SVN은 Git은 분산형 버전 관리 시스템임에 비해 중앙집중관리식이다. 즉 local PC에서 commit을 하면 바로 중앙저장소에 반영되는 반면에 Git은 각 개발자마다 로컬저장소가 있어, push 전에는 중앙저장소에 반영되지 않는다.

  • Git Repository : Git repository는 변경 이력별로 구분되어 소스코드가 저장되는데, 원격 저장소, 로컬 저장소로 나뉜다.

    • Remote Repository (원격 저장소) : 파일이 원격 저장소 서버에 저장되며 , 협업하는 개발자들과 공유 가능
    • Local Repository (로컬 저장소) : 말 그대로 로컬 PC에 파일이 저장되며 개인 저장소이다.

Git은 로컬저장소가 있음으로 성능상에 SVN에 비해 얻을 수 있는 장점도 있다.
프로젝트의 history를 조회하거나 어떤 파일의 현재 버전과 한달전 버전을 비교하고자 할떄 네트워크 요청없이 수행될 수도 있다.

Git 파일 상태

  • Git은 파일을 Committed , Modified , Staged 이렇게 3가지 상태로 관리한다.
  1. Committed : data 가 local repository에 안전하게 저장되었음 (git commit 이후 상태 )
  2. Modified : data 가 수정되었으나 local repository 에 저장되지 않았음
  3. Staged : 현재 수정한 file을 곧 commit 할것이라고 표시한 상태 (git add 이후 상태)
Read more