[Git (9)] Git Branch(1) - 기초(Branch 생성 및 사용)
안녕하세요. 갓대희 입니다. 이번 포스팅은 [ git branch 생성 및 사용하기 ] 입니다. : )
1. Git Branch란?
※ Branch란?
- Software개발시 개발자들은 동일한 소스코드 위에서 신규 개발, 버그 수정 등의 업무를 협업하곤 한다. 이럴 때, 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이 "Branch" 이다.
즉, 브랜치(Branch)를 통해 하나의 프로젝트를 여러 갈래로 나누어서 관리할 수 있다. 각각의 독립된 Branch에서 마음대로 소스코드를 변경하여 작업 한 후 원래 버전과 비교하여 또 하나의 새로운 버전을 만들어 낼 수 있다.
▶ 1. Branch 확인 하기
1) 현재 내가 위치한 Branch 확인
#git branch
- 현재는 master 브랜치만 존재 한다. (master :최초 레포지토리 생성후 커밋하면 자동으로 생기는 브랜치)
- *가 붙어있는 브랜치가 현재 활성화된 브랜치이다.
#git status
- On branch master > 마스터 브랜치 위에 있다.
2) 원격 저장소의 브랜치 확인
#git branch -r
3) 브랜치의 마지막 커밋 메세지 확인
git branch -v
▶ 2. Branch 생성 및 이동
2.1 첫번째 방법
1) Branch 생성하기
- git branch 브랜치명
ex)
#git branch test
2) 생성한 Branch로 이동하기
- git checkout [브랜치명]
※ git 2.23버전 부터 git checkout을 대신하여 switch와 restore가 나오게 되었다.
checkout의 기능이 너무 많아 분리하였다고 볼 수 있다.
- checkout: Switch branches or restore working tree files
- switch: Switch branches
- restore: Restore working tree files
- git switch[브랜치명]
ex)
#git switch test
2.2 두번째 방법
1) 브랜치를 새로 만들면서 브랜치 변경
- git checkout -b 브랜치명
※ 브랜치를 만들면서 브랜치 변경하는 명령어도 변경 되었다.
- $ git switch -c [브랜치명]
ex)
#git switch -c test2
2.3 git switch -t orogin/[원격브랜치명]
- 원격 브랜치와 같은 이름으로 로컬 브랜치를 생성하고 스위치 할 수 있다.
▶ 3. git 변경사항 복원
1) git restore
- 작업중인 파일(변경 내역이 있는 파일)을 복원할 수 있다.
ex)
#git restore .
#git restore App.js
2) git restore --staged
- stage된 파일도 복구할 수 있다. (예전엔 git reset HEAD 파일명 으로 복구할 수 있었다.)
ex)
$ git restore --staged .
$ git restore --staged App.js
▶ 4. Branch 삭제
1) git branch -d 브랜치명
ex)
#git branch -d test2
2) git branch -D 브랜치명
- 다음과 같이 머지가 정상적으로 지 않았거나, 충돌이 해결되지 않은 브랜치는 오류메세지가 발생한다. 이런경우 강제로 삭제할때 -D 옵션을 사용한다.
error: The branch ‘branch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D branch'.
3) git push origin --delete [브랜치명]
- 원격 브랜치를 삭제할 경우 사용 가능하다.
▶ 5. 생성한 Branch를 원격 Repository에 push 하기
1) 생성한 branch로 이동
ex) > checkout은 switch로 대체 되었다.
#git switch test
#git push
- 현재 원격 레포지토리(github)에는 master branch밖에 없는 상태이고, test branch로 이동하여 push를 하면 오류가 발생한다.
- 로컬 레포지토리를 리모트 레포지토리로 처음 push할때는 --set-upstream 옵션을 줘야 한다.
그래야 tracking 정보 설정이 되어 git push만 사용해도 push가 된다.
- 위의 메세지 처럼 --set-upstream 옵션을 사용해 보자.
#git push --set-upstream origin test
위 명령어는 다음과 같이 줄여서도 실행 가능하다.
#git push -u origin test
- github 페이지로 가서 결과를 확인해보면 신규 branch가 생성되어, 총 2개의 브랜치로 늘어난 것을 볼 수 있다.
- 신규 branch > push 이전
- 신규 branch > push 이후
이로써 기본적으로 git branch 생성, 삭제, 이동 하는 방법을 알아 보았다.