-
git branch공부한다/git 2021. 4. 4. 20:22
퍼블하면서 이제야 협업을 시작한 사람.. 그게 나야 빠둠빠두비두밥..
브랜치가 너무 생소해서 고생중...
그래서 개념 정리가 필요해 공부하면서 정리를 해본다! 두잇!
branch는 무엇인가? 🧐
개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다.
이전 게시물에서 저장소 생성방법을 두가지로 나열했었는데, 오늘은 이미 만들어진 원격저장소를 clone하여 branch를 생성하는 방법에 대해 기록해보려고 한다.
branch를 어떻게 사용하면 되는거지?
1. 프로젝트를 clone한 후, branch 생성
1) clone할 프로젝트의 주소를 복사한 후, 터미널 창에서 프로젝트를 복사할 경로선택 (예: cd documents/폴더명)
2) git clone 프로젝트 주소
3) 'git branch 브랜치이름' 입력하여 브랜치 생성
* git branch 명령은 브랜치를 만들기만 하고 브랜치를 옮기지 않는다.
만약 브랜치를 만들면서 checkout까지 한 번에 하려면 '$git checkout -b 브랜치이름'을 명령어로 입력하면 된다.
* 기본적으로 git은 master 브랜치를 만들고, 처음 커밋하면 이 master 브랜치가 생성된 커밋을 가리킨다. 이 후 커밋을 만들면 master 브랜치는 자동으로 마지막 커밋을 가리킨다.
2. 브랜치 이동하기
1) 'git checkout 브랜치이름' 입력하여 브랜치로 HEAD를 옮긴다.
* 브랜치를 이동하면 워킹 디렉토리 파일이 변경된다. 이전에 작업했던 브랜치로 이동하면 워킹 디렉토리 파일은 그 브랜치에서 가장 마지막으로 했던 작업 내용으로 변경된다. 파일 변경시 문제가 있어 브랜치를 이동시키는게 불가능한 경우 git은 브랜치 이동 명령을 수행하지 않는다.
3. 브랜치에서 작업 후 add, commit, push
1) 브랜치에서 작업한 내용을 푸시한다.
* 현재 브랜치가 가리키고 있는 히스토리가 무엇이고 어떻게 갈라져 나왔는지 보려면 git log --oneline --decorate --graph --all
4. git merge
새로 만든 브랜치에서 작업하여 push한 내용을 원격저장소에서 합치려면 master브랜치에서 merge를 해야한다.
git checkout master
git merge 브랜치이름
5. merge 후 더 이상 필요없는 브랜치를 삭제
merge 후 더 이상 필요없는 브랜치를 삭제하려면 git branch명령에 -d 옵션을 주면 된다.
git branch -d 브랜치이름
브랜치 관리는 어떻게 하는거지?
브랜치 목록 확인
git branch 를 입력하면 브랜치 목록이 나온다.
'*'부호는 브랜치가 현재 checkout해서 작업중인 브랜치임을 나타낸다.
$ git branch
branch1
* master
branch2각 브랜치마다 마지막 커밋 메세지를 함께 확인하려면 뒤에 -v 옵션을 붙여준다
git branch -v
merge 유무에 따른 브랜치 목록 확인
merge한 브랜치 목록 확인
git branch --merged
merge 안 한 브랜치 목록 확인
git branch --no-merged
merge 하지 않은 브랜치 강제 삭제
merge 하지 않은 브랜치를 강제로 삭제하려면 위와 마찬가지로 -d 옵션으로 삭제하면 된다
git branch -d 브랜치이름
참고:
'공부한다 > git' 카테고리의 다른 글
git rebase로 커밋 변경하기 (0) 2021.04.15 push하지 않은 commit 수정하기 (0) 2021.04.04 git 기초 단어 및 개념 (0) 2021.04.04