nyximos.log

[Git] 브랜치로 작업하기 본문

Programming/Git&GitHub

[Git] 브랜치로 작업하기

nyximos 2022. 2. 22. 15:11

Branch

  • 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것이다.
  • 독립적으로 어떤 작업을 진행하기 위한 개념
  • 다른 branch의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다.
  • 기본적으로 Git은 master branch를 만든다.
  • checkout 하지 않는 이상, 모든 작업은 master branch에서 이루어진다.
  • 처음 커밋하면 이 master branch가 생성된 커밋을 가리킨다.
  • 이후 커밋을 만들면 master branch는 자동으로 가장 마지막 커밋을 가리킨다.
  • master branch는 다른 브랜치와 다른 것이 없다.
  • git init 명령으로 초기화 할때 자동으로 만들어진 이름을 변경하지 않기 모든 저장소에는 master branch가 존재한다.

 

Head

  • 단순히 repository의 현재 "위치"를 가리키는 포인터
  • 현재 사용중인 branch의 선두부분을 나타내는 이름
  • Head를 이동하면 사용하는 branch가 변경된다.

 

 

브랜치 전환하기

  • Git에서는 항상 작업할 브랜치를 선택해야 한다.
  • 선택된 브랜치가 아닌 다른 브랜치에서 작업하고 싶을 때, checkout 명령어를 실행해 원하는 브랜치로 전환한다.
  • 체크아웃 실행 → 브랜치 안에 있는 마지막 커밋 내용이 작업 트리에 펼쳐짐

 

git branch 브랜치명

브랜치 명으로 branch를 생성

새로 만든 브랜치도 지금 작업하고 있던 마지막 커밋을 가리킨다.

 

git branch

브랜치 목록 전체 확인

 

git checkout 브랜치명, git switch 브랜치명

내가 사용할 브랜치 지정

 

git checkout -b 브랜치명, git switch -c 브랜치명

브랜치 작성과 체크아웃을 한꺼번에 실행

 

 

브랜치 병합하기

git merge 커밋명

지정한 커밋 내용이 HEAD가 가리키고 있는 브랜치에 넣어진다.

 

 

브랜치 삭제하기

git branch -d 브랜치명

git branch -D 브랜치명

강제 삭제할 경우 -D 옵션으로 삭제한다.

 

 

Merging

특정 커밋이  아닌 branch를 병합한다.

언제나 현재 HEAD branch를 기준으로 병합한다

 

 

충돌 해결하기

1. merge conflict가 있는 파일을 연다.

2. 파일을 편집하여 충돌을 제거한다.

3. 파일에서 충돌 "markers"를 제거한다.

4. 변경사항을 추가한 후 커밋한다.

 

 

👻 Visual Studio Code 에서 기능을 사용할 수도 있다.

Accept Current Change : head 부분 적용

Accept Incoming Change : 변경된 부분 적용

Accept Both Change : 둘다 적용

Compare Change : conflict 부분을 더 보기 쉽게 보여줌

 

 

 

 

 

참조

git

누구나 쉽게 이해할 수 있는 Git 입문

Git & Github 실무 활용 완벽 가이드