[ASAC 06] Git (7) - git clone 으로 remote repository 내려 받기

flavor_blue·2024년 9월 1일

git

목록 보기
7/8

pull request 와 merge를 진행하기 전, clone 에 대해 알아보겠다.
git clone예전에 유명한 2인조 남성 듀오 복제라는 의미를 가진 단어이다. 뜻 그대로, 원격 저장소를 복사할 수 있는 명령어이이다. git 같은 버전 관리 프로그램을 사용하기 전에는, 개발하다가 다른 PC 에서 개발하려면 USB에 프로젝트를 담거나 뭐 공용 저장소 (NAS, FTP 등)을 사용해야 했을꺼다. 허나 git은 이러한 단점을 단숨에 해결 해 준다! 따로 이동할 필요 없이, 다른 pc에서 git clone 명령어를 사용해 저장소를 통째로 가져올 수 있다.

git clone

명령어는 다음과 같다
git clone '원격 저장소 이름' '저장 폴더 이름'

저장 폴더 이름은 따로 작성하지 않으면 원격 저장소의 이름으로 폴더가 만들어지고, 해당 폴더에 내용 저장이 가능하다.

💡git clone 후 바로 해당 디렉터리로 이동하기
리눅스 (git bash 포함) : git clone~ && cd '디렉터리 이름'
windows : git clone <repository-url>; Set-Location <directory-name>

정상적으로 복사가 되긴 했으나, 뭔가 좀 이상하다. 이건 저번에 내가 했던 마지막 작업이 아닌데!? 내 .gitigore 어디갔어!? git branch -a 명령어로 git branch 상황을 확인 해 보자.

해당 내용을 부분별로 해석 해 보자. 먼저, 빨간 글씨로 remotes~ 로 작성되어 있는 부분들은 바로 원격 저장소 에서의 브랜치 정보이다. 그 위의 하얀 글씨로 된 영역 (main은 지금 선택되어 있는 브랜치라 초록색이다. 그 외에 더 있는 경우는 하얀색 글씨로 표기) 로컬 브랜치를 의미한다.

특히 remote의 HEAD 브랜치는, 현재 repository 의 HEAD가 어떤 브랜치를 가리키고 있는 지 보여준다. HEAD 라는 브랜치가 따로 존재하기 보단, 원격 저장소에서 기본적으로 사용되는 브랜치에 대해 나타낸다. 해당 사진에서 -> origin/main 으로 작성이 되어 있는데, 이 의미는 즉 해당 원격 저장소가 default로 어떤 저장소를 사용하고 있는지 나타낸다.

이제 이러한 상황에서, 가장 최근에 푸시한 내용을 가져와보자. 방법은 2가지가 있는데, 1번 방법은 로컬의 main 브런치에 불러오는 방법이 있고, 2번 방법은 원격 저장소와 같은 브랜치를 만들고, 그 브랜치에 checkout 하며 이전의 commit/push 부분으로 돌아가는 방법이 있다.

git pull

1번의 방법에 해당하는 명령어가 바로 git pull이다. 원래 pull 명령어는 fetch와 merge의 작업을 합친 기능을 하는 명령어인데, 원격 저장소의 상태를 가져오고, 로컬 저장소와 병합하게 된다.

명령어의 구조는 다음과 같다.
git pull 'remote alias' 'branch_name'

최신 변경사항이 로컬의 main 브랜치에 적용 됐다!

비록 기존에 유지하던 브랜치 구조와 달라지긴 했지만, 어찌 됐든 불러오긴 했다! 사실 브런치 구조가 달라지는 것도 걱정할 게 없는게, 어차피 변경사항 push 할 때는 remote alias 와 branch name을 또 구분 해 줘야하기 때문에, 로컬 main에 내용을 받아와 처리한다고 해도 크게 문제가 되진 않는다. 구분만 잘 하면...

checkout 'branch'

2번의 방법으로, checkout 명령어를 사용하는 방법이 있다. 이전 포스팅에서, git checkout 명령어가 브랜치로 이동하는 기능을 제공한다고 했는데, 만약 브랜치가 생성되어 있지 않다면 -b옵션을 사용 해야만 했었다. 허나 이같이 원격 연결 정보에 브랜치 정보가 담겨있는 경우에는 -b옵션을 사용하지 않아도 브랜치가 알아서 생성이 된다.

이 경우에는 push 할 때 따로 branch name을 기입하지 않아도, 알잘딱깔센으로다가 기존에 참조했던 원격 저장소의 브랜치에 push 가 된다.

경우에 따라 잘 사용하도록 하자.

📑 출처 및 참조
[ASAC] 강의 자료
Chat gpt

profile
아무거나 쓰려하지 말고 생각하며 쓰고 싶습니다

0개의 댓글