Git: clone, single-branch, checkout

 

clone

보통 공동으로 작업할 때 깃(git)을 많이 사용하는데, 깃에는 두 개의 저장소 개념이 있다. 

사용자의 PC로컬 저장소, 깃허브 리포지토리원격 저장소라고 한다. 

git clone 명령어를 사용하면 원격 저장소에 저장된 코드를 로컬 저장소로 가져올 수 있다. 

git clone {리포지토리 url(http)}

 

리포지토리 url은 깃 리포지토리 화면에서 code 버튼을 눌러서 얻을 수 있다. 

지금은 http url을 기준으로 리포지토리를 가져오는 방법을 알아보았지만, 나중에는 ssh를 기준으로 리포지토리를 가져오는 방법도 알아봐야겠다. 

 

 

branch

git에는 브랜치(branch)라는 개념이 있다. 하나의 나무에서 여러 개의 가지(branch)가 나온다고 생각하면 편하다.

기본 중심은 master 브랜치이다.

다른 브랜치끼리 서로 합칠 수도 있고, 하나의 브랜치에서 다른 브랜치를 만들어 낼 수도 있다. 

 

여러 개의 브랜치를 만들지 않고 모두가 하나의 브랜치에서 작업한다고 가정해 보자.

깃허브에 작업 내용을 반영할 때, 각자의 코드가 다른 부분이 생기면 그 때마다 충돌이 발생한다.

물론 나중에는 불일치를 해결해야 하겠지만, 깃허브에 코드를 올릴 때마다 이 충돌을 해결하는 것은 번거로울 수 있다. 

 

하지만 브랜치가 있다면 각자의 브랜치에서 작업하고, 나중에 여러 개의 브랜치를 하나로 합칠 때만 이 충돌을 해결해 주면 된다.

따라서 깃허브에 코드를 올릴 때마다 충돌이 발생할 걱정이 없다. 

 

이처럼 브랜치는 하나의 프로젝트를 여러 목적에 따라서 나눌 때(개발용 브랜치, 실제 배포용 브랜치, 테스트용 브랜치 등등), 또는 사용자마다 다른 브랜치를 사용한 다음 하나로 합칠 때도 사용한다. 

 

 

single-branch

위에서 clone으로 깃허브의 코드를 가져올 때, 해당 리포지토리에는 여러 개의 브랜치가 있을 수 있다. 

이때 특정 브랜치의 코드만 가져오고 싶을 때 사용하는 것이 single-branch이다. 

 

즉 single-branch를 사용하면 원격 저장소에서 전체를 다운받는 것이 아니라, 개별 브랜치의 내용만 가져오는 것이 가능하다. 

git clone -b {브랜치 이름} --single-branch {리포지토리 url}

 

 

checkout

single-branch와 달리, 이번에는 리포지토리의 모든 브랜치의 코드를 가져왔다고 해 보자. 

이때 때로는 작업하는 브랜치를 바꿔 가면서 개발해야 하는 상황도 있다. 

checkout을 사용하면 필요할 때마다 현재 작업하는 브랜치를 바꾸면서 작업할 수 있다. 

참고로 checkout의 기본 브랜치는 origin, 즉 master 브랜치이다. 

git checkout {브랜치 이름}

 

'server-side > server' 카테고리의 다른 글

Mac 환경설정  (0) 2024.07.15
Software Release Life Cycle  (0) 2023.07.15
OAuth 2.0 기본원리  (0) 2022.09.26
인증(Authentication)  (0) 2022.07.14
linux: cron 사용해서 자동으로 스케줄 실행하기  (0) 2022.07.09

+ Recent posts