Git에서 클론(Clone)은 원격 저장소의 코드와 버전 전체를 컴퓨터로 내려받는 것을 의미한다.
이때 중요한 점이 "버전 전체를 내려받는다"라는 것이다.
즉, 내가 2023년에 클론을 받았더라도 버전 전체를 내려받는 작업이기 때문에 2022년에 팀원들이 작업한 내역들도 확인할 수 있는 것이다.
이전에도 말했지만, Git은 "버전 정보"인 커밋을 통해 버전 관리를 수행하는 버전 관리 툴이다.
따라서 항상 Git에서 어떤 작업을 수행할 때 버전 정보를 어떻게 다루는지가 Git 동작을 이해하는 데에 있어 핵심이라 볼 수 있겠다.
결론적으로, Git은 클론을 통해 원격 저장소를 그대로 로컬 저장소에 복제할 수 있는 것이다.
Git Bash에 접속하여 1번 과정에서 생성한 디렉토리로 Working Directory를 변경해야 한다.
git clone [원격 저장소 주소] .
여기에서 가장 중요한 것이 git clone
을 입력한 뒤 마지막에 한 칸 띄우고 .
을 붙여주는 것이다.
git clone
뒤에 .
을 붙이지 않으면 프로젝트 이름으로 폴더가 생성된 뒤 그 폴더 안에 .git
폴더 및 프로젝트가 다운된다.
물론 이렇게 돼도 큰 상관은 없지만 구조가 복잡해진다.
따라서 .
을 마지막에 입력함으로써 현재 폴더(Working Directory)에 클론 받은 파일들이 저장되도록 설정해 준다.
.
을 붙인 상황
.
을 붙이지 않은 상황
이제 Git 맛보기의 마지막 단계이다.
Git 같은 형상 관리 툴은 결국 "협업"을 위한 툴이다.
즉, 많은 사람들이 동일한 소스 코드를 작업할 때 활용하는 툴이 Git이라는 것이다.
그렇다면 Git에서 꼭 필요한 작업이 있는데, 바로 다른 팀원의 작업물을 끌어오는 것이다.
예를 들어 A라는 사람이 작업물을 "a"에서 "ab"로 바꾸었는데 B라는 사람이 이를 인지하지 못하고 "a"에서 "ac"로 바꾼다면 두 작업물은 공존할 수 없는 상태가 된다.
(이를 Git에서는 "충돌이 났다"라고 한다.)
따라서 B라는 사람은 작업하기 전 원격 저장소에서 "ab" 작업물을 가지고 와 "a"를 "ab"로 최신화 시킨 다음 "abc"로 작업을 진행해야 하는데, 이렇듯 레포지토리에 저장된 협업 결과물을 로컬 저장소에 가져오는 작업이 바로 "Pull"이다.
위 사진이 Before, 아래 사진이 After이다.
문구 한 개를 추가했다.
git pull origin [원격 저장소 브랜치 이름]
git pull
명령어를 통해 작업물을 가지고 오는데 이때 origin
, 즉 원격 저장소에서 작업물을 가지고 온다는 것을 명시해 준다.
마지막으로 main
을 통해 origin
의 많은 브랜치 중 main
브랜치 작업물을 Pull 받을 것이라는 것을 명시해 준다.
사진을 보면 README.md 파일 1개가 최신화되었음을 볼 수 있다.
파일을 확인해 보면 문구가 추가된 것을 볼 수 있다.
이제 Git 맛보기는 끝이 났다.
다음 Section부터는 실제 CLI 명령어 및 IntelliJ를 활용하여 실전에서 활용하듯 Git을 사용해 보자.