[1주차 - DAY4] Git 브랜치 전략 기반의 협업 워크 플로우
Clone
원격 저장소에 연결하여 소스 코드를 받아오는 명령어이다.
CLI
- 새 폴더 생성
- 생성한 폴더를 vscode에서 열기
- 터미널에 아래 코드 입력
git clone 원격저장소_URL
.git 폴더가 내려받은 폴더인 FirstRepository 폴더에 위치하고 있기 때문에 pull 할 때는 FirstRepository로 작업 디렉토리를 변경하고 수행해야 한다. 디렉토리를 변경하지 않고 pull을 수행하면 아래와 같이
fatal: not a git repository (or any of the parent directories): .git 에러가 발생한다.
GUI
이 경우에는 현재 작업 디렉토리가 FirstRepository이기 때문에 별도의 디렉토리 이동 없이 pull을 수행하면 된다. vscode 탐색기에서 볼 수 있듯이 CLI와 GUI는 포커싱의 차이가 있다.
Pull
원격저장소의 최신 이력을 내 컴퓨터에 가져오는 명령어이다. 내 컴퓨터에서 커밋한게 아니어도 커밋 로그가 다 보인다.
git pull 원격저장소_별칭 브랜치이름
참고로 clone과 pull의 차이점은 clone은 로컬 저장소(내 컴퓨터)의 내용이 원격 저장소의 내용과 같아지지만 pull은 내가 기존에 작업하던 내용은 유지하면서 원격 저장소의 최신 코드로 업데이트해준다. 따라서 프로젝트를 처음 내려받을 때는 clone, 이후에 수정 사항을 내려받을 때는 pull을 사용한다.
Branch
한 프로젝트의 각 기능을 따로따로 구현하기 위해 브랜치를 분리한다. 예를 들어 로그인 기능과 상품 조회 기능을 만들어야 한다고 하자. 오늘은 로그인 기능을 구현하고 내일은 상품 조회 기능 구현하고 모레는 로그인 기능을 구현한다고 하자. 그렇게 되면 커밋 메시지가 섞여 헷갈리는 상황이 올 것이기 때문에 브랜치를 분리하는 것이다. 분리된 브랜치들은 나중에 다시 하나의 프로젝트로 합쳐지게 된다.
목록 확인
git branch
* 표시는 현재 내가 위치해있는 브랜치임을 의미한다.
생성
git branch 브랜치이름
마지막 커밋 시점을 기준으로 브랜치가 생성되기 때문에 그 커밋까지의 기록을 다 가지고 있다. 프로젝트를 가상으로 통째로 복사하는 것과 같다.
이동
git checkout 이동할브랜치이름
이동하려는 브랜치가 존재하지 않으면 에러가 발생한다.
이전에 위치해있던 브랜치로 이동하려면 이동할 브랜치 이름 자리에 하이픈(-)을 입력하면 된다.