branch란 무엇인가?
branch란 개발 저장소를 어지럽히지 않고 병렬적으로 개발을 수행할 수 있도록 도와주는 작업공간이다. branch는 Git의 가장 기본적인 작업공간 단위이다. 따라서 branch라 부르는 작업공간을 전환하고 생성하는 방법은 매우 중요하며, 작업 공간의 목록을 확인하는 것도 매우 중요하다.
git branch 이용해 브랜치 목록과 현재 브랜치 확인하기
git branch를 사용하면 브랜치 목록이 뜬다. 이 중 왼쪽에 *표시가 되어 있는 것이 현재 작업중인 브랜치이다.
branch 생성하기
이번에는 브랜치를 생성하는 방법을 알아보자. branch를 생성하는 방법은 다음 두가지 방법으로 가능하다.
- git branch를 이용한 생성
- git checkout -b 를 이용한 생성과 전환 동시 처리
git branch를 이용한 생성
branch는 git branch 명령어로 생성 가능하다.
git branch [branch name]
예를 들어 "feature-play" 라는 브랜치를 생성하고 싶으면 다음과 같이 작성하면 된다.
git branch "feature-play"
하지만 위와 같이 생성했을 때는 브랜치가 자동 전환되지 않는다.
git checkout -b 를 이용한 생성과 전환 동시 정리하기
브랜치를 생성의 생성과 전환을 동시에 하고 싶으면 다음 git checkout -b 명령어를 써야한다.
git checkout -b [branch name]
이 명령어는 브랜치가 없을 때는 브랜치를 생성해주고 전환하며 브랜치가 있을 때는 브랜치를 전환한다. 예를 들어 "feature-call"이라는 브랜치를 생성과 전환을 동시에 하고 싶다면 다음의 명령어를 사용하면 된다.
git checkout -b "feature-call"
git switch -c를 이용해 브랜치 생성과 전환 동시에 처리하기
git switch를 이용해 브랜치의 생성과 전환을 동시에 처리하고 싶다면 -c 옵션을 추가하면 된다. 이 명령어는 git checkout -b와 똑같이 동작한다. -c는 create의 약자이다.
git switch -c [branch name]
branch 전환하기
브랜치를 전환하기 위해 git에서는 두가지 명령어를 지원한다.
- git switch
- git checkout
git switch를 이용해 브랜치 전환하기
branch를 전환하기 위해서는 다음 명령어로 전환이 가능하다.
git switch [branch name]
예를 들어 "feature-call" 브랜치에서 "master" 브랜치로 전환하고 싶다면 다음의 명령어를 통해 가능하다.
git switch "master"
하지만 git switch 명령어는 브랜치가 없을 경우에는 전환하지 않는다.
브랜치가 없을 경우 새로 브랜치를 생성 후 전환하고 싶다면 위에서 언급한 git switch -c 옵션을 추가해야 한다.
git checkout을 이용해 브랜치 전환하기
git checkout은 기본적으로 git swtich와 동작이 같다. git checkout을 이용하면 브랜치 전환이 가능하다.
git checkout [branch name]
git checkout 또한 git switch와 마찬가지로 브랜치가 없을 경우에는 전환되지 않는다. 브랜치가 없을 경우 새로 브랜치를 생성 후 전환하고 싶다면 위에서 배운 git checkout -b 옵션을 추가해야 한다.
왜 git switch 와 git checkout이 비슷할까?
git checkout에는 많은 옵션이 있다. 너무 옵션이 많아서 커밋 단위 전환부터 브랜치 전환까지 모두 지원한다. 하지만 이렇게 하나의 명령어에 많은 옵션을 몰아넣는 것은 사용성을 떨어트린다. 이를 해결하기 위해 git switch가 git checkout의 브랜치 관련 명령어를 대체하기 위해 나왔다.
즉, git switch는 branch 조작만을 위한 명령어이며 git checkout은 branch 조작 뿐만 아니라 다른 기능들도 포함하는 명령어라고 보면 된다. 만든 이의 의도에 따라 브랜치 조작을 위해서는 git switch를 사용하는 것이 권장된다.
branch 조작을 위해서는 git switch를 사용하자!