[TIL / Git] checkout, branch, merge

Changyun Go·2021년 11월 29일
0
post-thumbnail

[TIL / Git] checkout, branch, merge

코드뭉치 버리기


  • 작업 후 커밋하기 전에 소스트리의 '코드뭉치 버리기' 기능을 사용하면 변경사항을 마지막 커밋시점으로 되돌릴 수 있다.
  • 터미널에서는 checkout이라는 명령어로 사용한다.

checkout


  • 특정 커밋이나 브랜치로 돌아가고 싶을 때 사용한다.
  • 소스트리에서는 브랜치명 혹은 커밋명을 더블클릭하는 것으로 사용할 수 있다.

branch


  • 기존 내용을 유지한 채 새로운 내용을 추가하고 싶을 때 사용한다.
  • master 브랜치에 있는 내용은 내버려두고 특정 커밋부터 새로 개발할 수 있다.
  • 한 번에 하나의 브랜치에서만 작업할 수 있고, 이를 현재 브랜치 혹은 헤드 브랜치라 한다.

브랜치를 만들고 새로 커밋하게 되면 이렇게 가지가 생성된다.

  • 작업은 무조건 브랜치에서 하고, 최종본은 항상 master에 있어야 한다.

merge


  • 하나의 브랜치를 현재 브랜치와 합치는 것을 말한다.

→ 예를 들어 헤드 브랜치가 master일 때, version2 브랜치를 병합하면 version2의 내용이 master에 반영된다.

병합하기 1(fast-forward)

  • 헤드 브랜치에 변경사항이 없고, 병합 대상 브랜치가 헤드로부터 시작된 경우다.
  • 아주 쉽게 병합할 수 있다.

https://cdn.inflearn.com/wp-content/uploads/git4-1.png

병합하기 2

  • 헤드 브랜치에 추가적인 커밋이 생기는 경우, 병합하면서 충돌이 발생할 가능성이 높다.
  • 서로 다른 파일에서 작업하면 충돌이 발생하지 않는다.

https://cdn.inflearn.com/wp-content/uploads/git4-3.png

미사용 브랜치 삭제

  • merge한 후에, 헤드 브랜치가 아닌 경우 간단하게 삭제할 수 있다.
  • 브랜치를 삭제했을 경우 사라지는 커밋이 있는지 여부를 확인해야 한다.

P.S.

✍️ 깃을 그냥 백업 용도로만 생각했던 내가 얼마나 무지했는지 실감이 된다😅

Reference


0개의 댓글