Among Us - Crewmates
 

[Git] Git Branch / fast forward

728x90

Git Branch

  • 독립적으로 어떤 작업을 진행하기 위한 개념
  • 각각의 Branch는 다른 Branch의 영향을 받지 않는다. (독립적이다)

etc-image-0

 

Git Branch 종류

메인 브랜치 : 배포할 수 있는 수준의 안정적인 Branch

토픽 브랜치 : 기능 추가나 버그 수정과 같은 단위 작업을 위한 Branch

 

Git Branch 생성

$git branch branch_name
  • branch_name 에 만들고자 하는 브랜치 이름을 임의로 적어준다.

 

Git Branch 전환

$git branch
$git checkout branch_name
$git checkout <snapshot hash>    /* 16진수로 이루어진 스냅샷 해시 */

$git branch

  • 현재 존재하는 브랜치

 

$git checkout

  • checkout 뒤에 나오는 브랜치 이름으로 브랜치를 변경
  • HEAD 포인터가 해당 브랜치를 가리키게 된다
  • branch 전환에 사용할 수도 있고, git log로 확인한 snapshot을 넘나들 때에 사용하기도 한다

 

Git Navigation

$git log --pretty=oneline
e4abb6f... (HEAD -> master) this is master
d97d387... another snapshot

$git checkout d97d387
...
HEAD is now at d97d387 another snapshot

$git log --pretty=oneline
e4abb6f... (master) this is master
d97d387... (HEAD) another snapshot
  • snapshot의 hash값을 이용해 과거의 파일 내용을 확인 할 수 있다.

 

Fast - Forward

blob

HEAD포인터가 like_feature 브랜치를 가리키고 있는 상태에서

like_feature에서 작업한 내용을 commit하게 되면

 

blob

이와 같이 새로운 checkpoint가 생겨나게 된다.

 

그렇다면 master 브랜치의 내용과, like_feature 브랜치의 내용에서는 차이가 있게 되는데

이럴 때 어떻게 두 내용을 병합할 수 있을까?

 

이것은 Git Merge 를 통해서 병합할 수 있다.

 

다음 포스팅에서 merge 브랜치 병합에 대해 다뤄보려고 한다.

728x90
반응형