데브코스

[1주차 - DAY4] Git 브랜치 전략 기반의 협업 워크 플로우

미안하다 강림이 좀 늦었다 2024. 2. 29. 12:44

 

 

Clone

원격 저장소에 연결하여 소스 코드를 받아오는 명령어이다.

 

CLI

  1. 새 폴더 생성
  2. 생성한 폴더를 vscode에서 열기
  3. 터미널에 아래 코드 입력
git clone 원격저장소_URL

터미널에서 실행
하위 폴더(FirstRepository)가 내려받아짐

.git 폴더가 내려받은 폴더인 FirstRepository 폴더에 위치하고 있기 때문에 pull 할 때는 FirstRepository로 작업 디렉토리를 변경하고 수행해야 한다. 디렉토리를 변경하지 않고 pull을 수행하면 아래와 같이

fatal: not a git repository (or any of the parent directories): .git 에러가 발생한다.

 

GUI

Git 리포지토리 복제 클릭
원격저장소 URL입력 후 엔터치고 원하는 폴더 선택

이 경우에는 현재 작업 디렉토리가 FirstRepository이기 때문에 별도의 디렉토리 이동 없이 pull을 수행하면 된다. vscode 탐색기에서 볼 수 있듯이 CLI와 GUI는 포커싱의 차이가 있다.

 

 

Pull

원격저장소의 최신 이력을 내 컴퓨터에 가져오는 명령어이다. 내 컴퓨터에서 커밋한게 아니어도 커밋 로그가 다 보인다.

git pull 원격저장소_별칭 브랜치이름

pull 실행
커밋 로그

참고로 clone과 pull의 차이점은 clone은 로컬 저장소(내 컴퓨터)의 내용이 원격 저장소의 내용과 같아지지만 pull은 내가 기존에 작업하던 내용은 유지하면서 원격 저장소의 최신 코드로 업데이트해준다. 따라서 프로젝트를 처음 내려받을 때는 clone, 이후에 수정 사항을 내려받을 때는 pull을 사용한다.

 

 

Branch

한 프로젝트의 각 기능을 따로따로 구현하기 위해 브랜치를 분리한다. 예를 들어 로그인 기능과 상품 조회 기능을 만들어야 한다고 하자. 오늘은 로그인 기능을 구현하고 내일은 상품 조회 기능 구현하고 모레는 로그인 기능을 구현한다고 하자. 그렇게 되면 커밋 메시지가 섞여 헷갈리는 상황이 올 것이기 때문에 브랜치를 분리하는 것이다. 분리된 브랜치들은 나중에 다시 하나의 프로젝트로 합쳐지게 된다.

 

목록 확인

git branch

* 표시는 현재 내가 위치해있는 브랜치임을 의미한다.

 

생성

git branch 브랜치이름

dev 브랜치가 생성됨

마지막 커밋 시점을 기준으로 브랜치가 생성되기 때문에 그 커밋까지의 기록을 다 가지고 있다. 프로젝트를 가상으로 통째로 복사하는 것과 같다.

 

이동

git checkout 이동할브랜치이름

dev 브랜치로 이동함

이동하려는 브랜치가 존재하지 않으면 에러가 발생한다.

존재하지 않는 브랜치일 경우

이전에 위치해있던 브랜치로 이동하려면 이동할 브랜치 이름 자리에 하이픈(-)을 입력하면 된다.

이전 브랜치로 이동