하나의 원격 저장소0개 이상의 로컬 저장소가 있을 수 있습니다. 따라서, 해당 원격 저장소에 변경 사항을 push하는 주체는 다른 사람일 수도 있다는 것입니다. 원격 저장소에 로컬 저장소의 변경 사항을 업로드할 때 push를 썼던 것처럼, 원격 저장소의 변경 사항을 로컬 저장소로 가져오려면 pull을 사용하면 됩니다.

git pull [remote] [branch]

$ git pull origin master

해당 명령을 사용하면 원격 저장소에서 데이터를 가져올 뿐만 아니라, 로컬 저장소의 현재 변경 사항들이 자동으로 병합됩니다. git push와 동일하게 remote가 origin, 브랜치가 현재 브랜치라면 이 둘을 생략할 수 있습니다.

$ git pull

'Git 레거시 글' 카테고리의 다른 글

[Git] 브랜치와 Merge  (0) 2018.05.24
[Git] Pull에서 충돌 해결하기  (1) 2018.05.23
[Git] 원격 저장소에 Push하기  (3) 2018.05.21
[Git] 원격 저장소 만들기  (0) 2018.05.20
[Git] 로컬 저장소에 Commit하기  (0) 2018.05.19

Working tree에 있던 파일들의 수정 내역을 인덱스에 staging하고, staged 파일들을 commit하고 나면 이 변경 이력은 로컬 저장소에 반영됩니다. 이 변경 이력들을 원격 저장소(remote)에 공유하려면, push를 사용하면 됩니다.

git push [remote] [branch]

$ git push origin master

이 커맨드에서 origin원격 저장소(remote)의 주소를 뜻하고, master현재 브랜치를 뜻합니다.

브랜치는 '가지'라는 뜻을 가지고 있는데, 안전하게 격리된 상태에서 무언가를 만들기 위해 사용합니다. 저장소를 새로 만들면 기본으로 master 브랜치가 만들어집니다. git push 뒤의 remote와 브랜치가 각각 origin현재 브랜치라면, 둘을 생략할 수 있습니다.

$ git push

이렇게 push를 진행하고 나면, 로컬 저장소와 원격 저장소(remote)가 동일한 상태가 됩니다. 단, 해당 원격 저장소에 쓰기 권한이 있고, clone 이후 아무도 리모트 저장소에 push하지 않았을 때만 사용할 수 있습니다. 다른 사람이 push한 후에 push하는 것은 불가능합니다. 이 경우 다른 사람이 작업한 것을 가져와서 병합한 후에 push해야 합니다.

만들어진 디렉토리에서 git init을 이용해 로컬 저장소를 만들어 여러가지 명령어들을 이용해 Untracked 파일들을 인덱스로 staging하여 Tracked로 바꾸기도 하고, commit으로 변경 이력을 등록하기도 했습니다. git push는 로컬 저장소에 Commit해둔 변경 이력을 원격 저장소로 반영하는 일인데, 원격 저장소를 생성해 두지 않았다면 remote를 설정할 수 없으니 이번엔 원격 저장소를 생성하도록 해 봅시다.

저장소 만들기

원격 저장소 생성과 관리를 도와주는 서비스는 GitHub, GitLab, BitBucket 등이 있습니다. 우리는 이들 중 가장 보편적으로 사용하는 GitHub를 사용해 보도록 합시다.

GitHub에 계정을 만들고, 우측 상단의 + 버튼을 클릭해 드롭다운의 New repository를 선택합니다.

Repository name을 입력하고, 초록색 'Create repository' 버튼을 클릭합니다. 그러면 저장소가 생성됩니다.

git remote add [name] [url]

git init으로 생성한 로컬 저장소는, 원격 저장소와의 연결을 위해 remote를 설정해 주어야 합니다. remote의 이름은 git의 관례 상 origin을 사용하며, 다른 이름을 사용해도 상관 없습니다.

$ git remote add some https://github.com/~/~.git

이 경우 some이라는 이름의 remote가 설정됩니다. remote -v 명령으로 원격 저장소에 대한 정보들을 확인해 봅시다.

$ git remote -v
some    https://github.com/~/~.git (fetch)
some    https://github.com/~/~.git (push)

git clone [url]

원격 저장소의 정보를 가져와 로컬 저장소를 생성하려면, git clone을 사용합니다. 만들어 둔 원격 저장소에서 초록색의 'Clone or download' 메뉴를 확인할 수 있을 것입니다.

해당 URL을 복사해서, clone 명령의 파라미터로 넘겨주도록 합시다.

$ git clone https://github.com/~/~.git

이제 clone 명령을 수행한 위치에 해당 원격 저장소의 이름과 동일한 디렉토리가 생성될 것입니다. remote가 설정되어 있는 로컬 저장소가 생성된 것입니다. remote -v 명령으로 현재 프로젝트에 등록된 원격 저장소를 확인해 보면, 실제로 origin이라는 이름의 remote가 자동으로 등록되어 있는 것을 볼 수 있습니다.

$ git remote -v
origin    https://github.com/~/~.git (fetch)
origin    https://github.com/~/~.git (push)

+ Recent posts