지영이의 개발 블로그
Git & Github (2)깃과 브랜치 본문
브랜치란?
- 깃으로 버전 관리를 시작하면 기본적으로 master 브랜치가 만들어진다.
- 사용자가 커밋할 때마다 master 브랜치는 최신 커밋을 가리킨다.
- 새 브랜치를 만들면 기존에 저장한 파일을 master 브랜치에 그대로 유지하면서 기존 파일 내용을 수정하고나 새로운 기능을 구현할 파일을 만들 수 있다.
- master 브랜치에서 뻗어 나오는 새 브랜치를 만드는 것을 '분기(branch)한다.'고 한다.
- 분기했던 브랜치를 master 브랜치에 합치는 것을 '병합(merge)한다.'고 한다.
기본 브랜치명 변경
git config --global init.defaultBranch main
브랜치 만들기
$ git branch : 브랜치를 만들거나 확인하는 명령
$ git branch <만들 브랜치 이름> : 새로운 브랜치를 만듦
$ git checkout : 브랜치 사이 이동하기
$ git checkout <만들 브랜치 이름>: 새로운 브랜치 만들고 해당 브랜치로 이동
브랜치 만들기
$git log --online --branches : 각 브랜치의 커밋을 함께 확인
$ git log --online --branches --graph : 브랜치와 커밋의 관계를 그래프로 형채로 표시
$ git log master ..<브랜치 이름> : 브랜치 사이의 차이점 확인
브랜치 정보 확인
git log --online --branches : 각 브랜치의 커밋을 함께 확인
$ git log --online --branches --graph : 브랜치와 커밋의 관계를 그래프로 형채로 표시
$ git log master ..<브랜치 이름> : 브랜치 사이의 차이점 확인
브랜치 병합
$ git merge <브랜치 이름>
$ git merge <브랜치 이름> --no-edit : 깃에서 지정하는 커밋 메시지를 그대로 사용
$ git merge <브랜치 이름> --edit : 커밋 메시지를 추가하거나 수정하고 싶을 경우에 사용하는 옵션
병합이 끝난 브랜치 삭제
$ git branch : 현재 저장소에 어떤 브랜치가 있는지 확인
저장소의 기본 브랜치는 master이므로 브랜치를 삭제하려면 master 브랜치에서 해야 한다.
$ git checkout master
브랜치를 삭제할 때는 git branch 명령에 -d 옵션 사용
$ git branch -d <삭제할 브랜치 이름>
이렇게 삭제된 브랜치는 완전히 지워지는 것이 아니라 다시 같은 이름의 브랜치를 만들면 예전 내용을 다시 확인할 수 있다!
브랜치 관리
HEAD는 현재 작업 트리가 어떤 버전을 기반으로 작업 중인지를 가리키는 포인터이다. HEAD는 기본적으로 master 브랜치를 가리킨다.
- 브랜치가 여러 개일 경우 현재 브랜치가 아닌 다른 브랜치에 있는 커밋을 골라 최신 커밋으로 지정하는 방법
git log --online --branches 커밋해시를 확인
$ git reset <연결하고 싶은 커밋의 해시>
- git checkout 명령을 사용해 HEAD를 제어해 브랜치 이동 가능
- git reset 명령을 통해 HEAD가 가리키고 있는 브랜치의 최신 커밋을 원하는 커밋으로 지정 가능, 이때 어떤 브랜치에 있는 커밋이든 지정할 수 있으며, 명령을 수행한 뒤 브랜치와 연결이 끊긴 커밋은 삭제된다
수정 중인 파일 감추기 및 되돌리기 - git stash
- git stash 명령을 사용하려면 파일이 tracked 상태(한 번은 커밋한 상태)여야 한다.
- 커밋하지 않은 수정 내용을 어딘가에 보관하려면 git stash 명령을 사용
- 감춘 파일들은 stash 목록에서 확인 가능하며 가장 먼저 감춘 파일을 가장 아래에, 가장 최근에 감춘 것을 위에 쌓는 선입후출 방식으로 파일들을 저장한다.
- 감춰둔 파일을 꺼내 수정하거나 커밋하기 위해서는 git stash 명령 뒤에 pop을 추가하면 stash 목록에서 가장 최근 항목을 되롤린다.
$ git stash
$ git stash pop
$ git stash apply : stash 목록에서 가장 최근 항목을 되돌리지만 저장했던 내용은 그대로 남겨둔다.
$ git stash drop : stash 목록에서 가장 최근 항목 삭제
'Git&Github' 카테고리의 다른 글
[Git&Githurb]자주 사용하는 Git 명령어 정리 & githurb 협업 (긴글주의) (0) | 2022.07.28 |
---|---|
Git & Github (1) (0) | 2022.06.15 |
Git_Cheat_Sheet (0) | 2022.06.15 |
Comments