Outdated/Column

[Computer Column] Git - 2

해달 2019. 3. 17. 20:22

이전 글에서 우리는 Git을 시작하고 간단한 수정을 통해 변경사항을 어떻게 기록하는지 살펴보고, 원격 저장소에도 해당 변경사항을 업로드하였다. 이번에는 다른 컴퓨터에서 동일한 저장소를 이용하는 법을 보려고 한다.

원격 저장소에서 프로젝트 가져오기

이전 글에서 Git을 시작하는 방법이 두 가지라고 얘기했던 것을 기억하는가? 첫 번째 방법은 본인의 로컬 컴퓨터에서 시작하는 것이었고, 두 번째는 Git 서버에 저장되어 있는 프로젝트를 본인의 컴퓨터로 가져오는 것이었다. 두 번째는 과연 어떻게 하는 것일까?

git clone "Your URL" # 원격 저장소의 링크를 붙여넣는다.

필자는 폴더를 하나 만들어 다른 컴퓨터에서 사용한다고 가정하겠다.

원격 저장소와 동일해진 것을 확인할 수 있다. info.txt을 열어 다음과 같이 수정하고 커밋한 후, 푸시까지 해보자.

info.txt

2019123123 홍길순 컴퓨터공학부

원격 저장소와 동기화하기

이전 글에서 썼던 컴퓨터를 A, 다른 컴퓨터를 B라고 하자. 현재 B와 원격 저장소는 동기화된 상태지만, A는 그렇지 않다. 그럼, 어떻게 하면 동기화할 수 있을까? git fetch를 쓰면 된다. git fetch는 원격 저장소의 Git 커밋 기록과 로컬을 대조해 달라진 부분이 있으면 해당 부분을 가져온다. 원격 저장소에 있는 파일의 상태가 로컬에 바로 적용이 되지 않음을 유의하자. A로 돌아와서 다음 명령어를 입력하자.

git fetch

시각화해서 보여주기 위해 GUI 도구인 SourceTree를 사용하였다. 보면 로컬에 있는 master 말고도 origin/master라는 게 보인다. 이것은 브랜치(branch)라는 것인데, 독립적으로 작업을 진행하게 한다. 자 이제 A 컴퓨터에 있는 파일을 최신화 시켜보자.

git merge origin/master

info.txt 파일이 수정되었음을 알려준다. 실제로 파일을 열어보면 원격 저장소와 같아졌음을 볼 수 있다. 이 두 가지의 명령어를 한번에 하는 명령어도 있다.

git pull origin master

아까처럼 B 컴퓨터에서 파일을 수정한 후, 이번에는 git pull로 해보라.

브랜치를 이용해 독립적인 작업 시행하기

이전 섹션에서 얘기했 듯, 브랜치는 독립적으로 작업을 진행하기 위해 버전 기록을 따로하는 단위이다. A 컴퓨터에서 feature1이라는 브랜치를 만들어 브랜치의 개념을 익혀보자.

git branch feature1

feature1이 무사히 만들어졌다는 것을 볼 수 있다. 이번에는 해당 브랜치로 이동해 새로운 파일을 만들어보자.

git checkout feature1

feature1.txt을 만들고, 커밋했다. 다시 master 브랜치로 돌아와보자.

아까까지만 해도 볼 수 있었던 feature1.txt가 보이지 않는다는 것을 알 수 있다. 이를 이용해 프로젝트에 영향을 최소화하면서 기능 개발이 가능한 것이다.

여기까지 Git에 대해 간단하게 살펴보았다. 이외에도 여러가지 기능이 있으니 살펴보길 바란다.