[Git] 브랜치 명령어

yezo cha·2021년 8월 10일
0

Git

목록 보기
3/4
post-thumbnail

브랜치 명령어 모음

새로운 브랜치 생성

$ git branch 새로운 브랜치 이름

새로운 브랜치 생성 후 해당 브랜치로 전환

$ git checkout -b 새로운 브랜치 이름
$ git switch -c 새로운 브랜치 이름

Remote Repository 에도 생성한 브랜치를 반영하려면

$ git push origin 새로운 브랜치 이름

// dev 브랜치를 만들어서 해당 브랜치로 이동해 보자.
$ git checkout -b dev

$ git push origin dev

// 브랜치가 잘 생성되었는지 확인해보자.
$ git branch

브랜치 목록 확인

$ git branch

브랜치 목록과 각 브랜치의 최근 커밋 확인

$ git branch -v

브랜치 삭제

$ git branch -d 삭제할 브랜치 이름
$ git branch -D : 병합하지 않은 브랜치강제 삭제하는 방법.

브랜치 전환

$ git switch 브랜치 이름
$ git checkout 브랜치 이름

브랜치 병합

  • master 브랜치로 dev 브랜치를 병합할 때 (master ← dev)
    • merge를 하기 위해서는 먼저 병합이 될 브랜치로 이동한다.
    • dev의 내용을 master로 병합하기 위해서는 현재 위치가 master인 상태에서 merge 명령어 !
    • dev 브랜치가 머지되기 전 master 브랜치에 추가적인 커밋이 없다면, 브랜치가 분기될 필요 없다.
      자동적으로 fast-forward 방식으로 병합이 된다.
      • fast-forward : 별도의 커밋을 생성하지 않고 master 브랜치가 가리키는 커밋을 dev 가 생성한 커밋으로 바꾸는 작업을 말한다.

$ git checkout master
$ git merge dev

merge ? rebase ?

rebase의 원리가 바로 fast-forward와도 같다.

merge
변경 내용의 이력이 모두 그대로 남아 있기 때문에 이력이 복잡해진다.

rebase
말 그대로 branch base를 이동시킨다는 뜻으로, 머지처럼 브랜치 통합을 목적으로 하지만, 특정 시점으로 브랜치가 가리키는 곳을 변경하는 기능을 합니다.

병합을 취소하고 이전 커밋으로 되돌리기

git reset -- hard 커밋 넘버

로그에 모든 브랜치를 그래프로 표현

$ git log --branches --graph --decorate

아직 commit 하지 않은 작업을 스택에 임시로 저장

$ git stash

git workflow : project

프로젝트를 진행하는 전체 흐름은 다음과 같다.
Local에서 새로운 브랜치를 생성하고 작업이 끝나면 Remote RepositoryPush 한다.
그리고 Project Upstream Repository에 반영(merge)될 수 있도록 Pull Request 한다.

만약 작업하던 중간에 Remote upstream 에 업데이트가 생긴다면 Local 로 pull 받아주어야 한다는 것을 잊지 말자!

$ git init
$ git checkout -b [브랜치 이름]
$ git merge [브랜치 이름]
$ git remote and origin [git repository 주소]
$ git remote -v

git 문서
Git!?!

profile
(ง •̀_•́)ง

0개의 댓글