이번 장에서는 버전1 -> 버전2 -> 버전3 과 같은 프로젝트의 시점 관리가 아닌, 프로젝트의 차원 관리에 대해서 알아보자.
프로젝트의 차원이 여러개여야 할 상황은 크게 2가지로 정리할 수 있다.
1) 프로젝트의 용도가 달라, 프로젝트를 2개 이상의 모습으로 관리해야 할 경우
ex) 실 배포용, 테스트 서버용, 새로운 시도용
2) 여러 작업들을 각각 독립적으로 적용한 후, 하나로 병합할 경우
ex) 각 팀이 각각의 차원에서 신기능1, 신기능2, 신기능3을 추가한 후,
이를 메인 차원에서 병합할 경우
-> 이러면 개발이 완성된 신기능 먼저 적용시킬 수 있음. (즉 속도!!)
=> 결국 Git의 시간과 / 차원을 활용하면, 이 모든것을 하나의 프로젝트 폴더에서 수행할 수 있다.
이제 이 branch를 생성하고 다루는 명렁어를 알아보자.
<현재 시점에서 새로운 브랜치 생성>
- [현재 시점에서 특정이름의 브랜치 생성]
git branch add-coach
- add-coach 란 이름의 새로운 브랜치 생성
- 주의할 점은, main브랜치의 현재 커밋 시점에서 부터 add-coach 브랜치가 파생되어 생긴다.
- 이 브랜치에서는, 프로젝트에 coach라는 파일을 추가해 볼것
<내 로컬 프로젝트에 있는 모든 브랜치 목록 확인>
- [로컬 프로젝트의 모든 브랜치 목록 확인]
git branch
- 목록으로 나오는 브랜치들 중, *이 붙어있는 브랜치가, 현재 작업중인 브랜치
<특정 브랜치로, 현재 작업중인 브랜치 변경>
- [현재 작업중인 브랜치 변경]
git switch add-coach
- 현재 작업중인 브랜치가, add-coach 브랜치로 변경된다.
18.2. [새로운 브랜치를 생성과 동시에, 그 브랜치로 현재 작업중인 브랜치 변경]
git switch -c new-teams
- new-teams 라는 브랜치를 , 현재 시점에서 생성함과 동시에
- 현재 작업중인 브랜치를 new-teams 브랜치로 변경
<브랜치 삭제>
19.[브랜치 삭제]
git branch -d (삭제할 브랜치 명)
- 주의할 점은, 현재 작업중인 브랜치는 삭제할 수 없음
- 따라서 먼저 브랜치를 switch 한후, 삭제해야 함.
19.2 [강제 삭제]
git branch -D (삭제할 브랜치 명)
- 다른브랜치에는 적용되지 않는 커밋이, 삭제할 브랜치에만 존재하는 경우,
- 이 브랜치를 삭제하기 위해서는 대문자 D를 줘서, 강제 삭제!
- 왜냐하면 어느 브랜치에도 반영되지 않은 커밋이 있는데도 , 이 브랜치를 삭제해 버리면 -> 그런 커밋까지 삭제되어 버리는 것이기 때문에, 기본적으로 -d 옵션의 삭제를 막는다.
- 따라서 이럴 경우 -D 옵션을 줘서 강제 삭제를 해줘야 한다.
<브랜치 이름 변경>
- [브랜치 이름 변경]
git branch -m (변경전 이름) (변경 후 이름)
- 이때 m은 move를 의미한다
<모든 브랜치의 log 보기>
- [모든 브랜치의 전체 log 보기]
git log --all --decorate --oneline --graph
- 참고로 단순히 git log 만 하면, 현재 작업중인 브랜치의 로그만 볼 수 있음.