$ git branch 새로운 브랜치 이름
$ git checkout -b 새로운 브랜치 이름
$ git switch -c 새로운 브랜치 이름
$ 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)dev
의 내용을 master
로 병합하기 위해서는 현재 위치가 master
인 상태에서 merge 명령어 !dev
브랜치가 머지되기 전 master
브랜치에 추가적인 커밋이 없다면, 브랜치가 분기될 필요 없다.fast-forward
: 별도의 커밋을 생성하지 않고 master
브랜치가 가리키는 커밋을 dev
가 생성한 커밋으로 바꾸는 작업을 말한다.$ git checkout master
$ git merge dev
rebase의 원리가 바로 fast-forward와도 같다.
merge
변경 내용의 이력이 모두 그대로 남아 있기 때문에 이력이 복잡해진다.
rebase
말 그대로 branch base를 이동시킨다는 뜻으로, 머지처럼 브랜치 통합을 목적으로 하지만, 특정 시점으로 브랜치가 가리키는 곳을 변경하는 기능을 합니다.
git reset -- hard 커밋 넘버
$ git log --branches --graph --decorate
$ git stash
프로젝트를 진행하는 전체 흐름은 다음과 같다.
Local
에서 새로운 브랜치를 생성하고 작업이 끝나면 Remote Repository
로 Push
한다.
그리고 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