여러명이 동일 프로젝트를 협업하기 위해서 각각의 브랜치를 만들어 작업한다.
각각의 브랜치들은 서로의 작업영역에 영향을 주지 않는다.
-
새 브랜치 만들기
git branch <newBranchName>
새 브랜치 만듬과 동시에 체크아웃 하기
git checkout -b <newBranchName>
원격 브랜치를 트래킹하는 새 브랜치 만들기
git checkout --track <remote/branchName>
- branchName 을 가진 트래킹 브랜치가 생성된다.
-
원격저장소와 로컬 저장소의 브랜치 보기
git branch -a
develop feature/channel * feature/user master remotes/origin/HEAD -> origin/master remotes/origin/develop remotes/origin/master
로컬 저장소의 브랜치 보기
git branch
develop feature/channel * feature/user master
원격 저장소의 브랜치 보기
git branch -r
origin/HEAD -> origin/master origin/develop origin/master
로컬 브랜치의 마지막 커밋 정보 보기
git branch -v
develop 322bd34 Service feature/channel d7631d3 WIP : Channel * feature/user 15dcbce WIP : Restart main 8356e72 Initial commit
로컬 브랜치의 마지막 커밋 정보 및 연결된 원격 브랜치 보기
git branch -vv
develop 322bd34 [origin/develop: ahead 1] Service feature/channel d7631d3 [origin/feature/channel] WIP : Channel * feature/user 15dcbce [origin/feature/user: gone] WIP : Restart main 8356e72 [origin/main] Initial commit
-
둘 이상의 브랜치를 하나로 합치는 명령어
머지 시키는 명령어는
merge
외에도 두 가지 방법이 더 존재한다.-
Straight Merge
git merge <branchName>
- 한 브랜치의 모든 변경 히스토리가 다른 브랜치에 머지 된다.
-
Squashed Commit
git merge --squash <branchName>
- 한 브랜치의 최종 커밋 히스토리만이 머지 된다.
-
Cherry-picking 🍒
git cherry-pick <commitName>
- 다른 브랜치의 특정 커밋만이 현재의 브랜치에 머지 된다.
커밋 없이 브랜치 머지 시키기
git merge --no-commit <branchName>
-
-
원격 브랜치를 새로 생성한 로컬 브랜치에 풀받기
git checkout -b <localBranchName> origin/<remoteBranchName>
<remoteBranchName> 이름을 가진 원격 브랜치를 <localBranchName> 을 가진 브랜치에 담는다. -
브랜치명을 변경하기 혹은 브랜치 옮기기
git checkout -m <selectedBranch> <newBranch>
-
브랜치 삭제
git branch -d <branchName>
브랜치 강제 삭제
git branch -D <branchName>
- 대문자 D를 사용
Master와 Develop 브랜치를 제외한 모든 브랜치 삭제
git branch | grep -v "master|develop" | xargs git branch -D
원격 저장소의 브랜치 삭제
git push <remoteName> --delete <branchName>