본문 바로가기
코딩해보니/Git

[Git_29] 브랜치(Branch)와 커밋(Commit)

by 위시랜 2023. 1. 3.

브랜치(branch)와 커밋(commit)
브랜치(branch)와 커밋(commit)

브랜치(Branch)와 커밋(Commit)

앞서 testbranch1에서 filea.html 파일을 수정했습니다.

 

 

[Git_28] 브랜치(Branch) 이동(checkout)

브랜치(Branch) 이동(checkout) 브랜치는 작업자라고 생각하면 이해가 쉬울 것이라 얘기했습니다. 나는 어느 작업자(브랜치)를 컨트롤할 것인지 정해야 합니다. 동시에 두 개 이상의 작업자(브랜치)

wishlan.tistory.com

 

이어서 testbranch1에서 커밋을 실행해 봅니다. 여섯 번째 커밋이 됩니다.

또, 이어서 한번더 filea.html을 수정하고 커밋해 보겠습니다. 일곱 번째 커밋이 됩니다.

일곱 번째 커밋을 실행하고, 커밋 이력을 확인한 결과가 다음과 같습니다.

브랜치에서 파일 수정 후 커밋하기
브랜치에서 파일 수정 후 커밋하기

 

현재 testbranch1 에서 filea.html의 파일 내용은 다음과 같습니다.

filea.html 파일 내용 확인하기
filea.html 파일 내용 확인하기

 

다음으로 hotfix1 으로 브랜치를 이동해서 filea.html을 확인해 보겠습니다.

hotfix1에서 filea.html 파일의 내용을 확인한 결과입니다.

다른 브랜치로 이동해서 filea.html 파일 내용 확인하기
다른 브랜치로 이동해서 filea.html 파일 내용 확인하기

 

두 소스의 차이가 있음을 우리는 알 수 있습니다.

testbranch1에서 filea.html을 두 번 커밋을 함으로 인해

다음과 같이 가리키는 HEAD포인트가 달라진 것입니다.

브랜치와 커밋의 관계
브랜치와 커밋의 관계

이와 같이 각각의 브랜치는 커밋 이력을 독립적으로 가지게 됩니다.

 

브랜치를 사용하는 것은 안정적인 코드에 영향을 주지 않고 분리해 개발을 하기 위해서입니다.

 

버전 관리 시스템을 어떻게 운용하느냐에 따라

목적이 다를 수 있겠지만, 보통은 다음과 같이 운용합니다.

 

master 브랜치엔 안정된 버전의 소스를 둡니다.

안정된 버전의 소스라는 것은

실제 서비스에 적용되어 있는 버전과 동일한 버전의 소스를 얘기합니다.

그래서 실제 서비스에 배포했거나 배포할 코드만 master 브랜치에 둡니다.

 

그리고 추가 작업들은 브랜치를 만들어서 진행하고,

테스트까지 완료되면, master와 합치게 됩니다.

 

master와 합친 후 최종 테스트를 거쳐서 실제 서비스에 적용하게 됩니다.

이렇게 생성한 브랜치를 다른 브랜치와 합치는 작업을 병합이라고 합니다.

머지(Merge)한다고 합니다.

 

다음에는 브랜치와 병합(Merge)을 알아보겠습니다.

 

감사합니다.

댓글