원격저장소/원격저장소의 기초
27 Feb 2019
|
github
지옥에서 온 git
원격저장소(Remote repository)
- 지역 저장소(local repository)와는 대비되는 개념
- 자신의 컴퓨터에서 작업 후 커밋하면 저장되는 곳이 지역 저장소를 의미
- 작업한 내용을 인터넷에 올려 백업하거나, 인터넷 저장소를 매개로 하여 타인과 협엽할 때 사용되는곳을 원격 저장소(Remote repository)라고 함
- 소스코드를 백업하거나 타인과 협업을 한다는 중요한 의미를 갖고있음
- 혼자 프로젝트를 진행하는 경우 구지 사용하지 않아도 됨
- 드랍박스나 구글 드라이브같은 클라우드 서비스를 이용하는것이 편리
원격저장소의 기초
- 빈 디렉터리를 만들고,
git init local(디렉터리 이름)
으로 초기화
cd local
로 해당 폴더로 이동 후, vim f1.txt
에 a 내용을 넣은후 저장
git add f1.txt
, git commit -m 1
로 커밋
- 지역저장소: 작업한 내용을 커밋하는 곳
- 원격저장소: 지역저장소와 연결되어 동기화되는 저장소
- 일반적으로 작업공간 외부의 클라우드같은 공간에 생성
- 백업의 의미도 있음
- 본 수업에선 한 컴퓨터에서 다른 디렉터리에 원격저장소를 만들고 커밋 및 동기화 예정
local
폴더를 원격저장소에 연결시켜 동기화
- 부모 디렉터리로 돌아가서(local 상위 폴더)
git init --bare remote
로 remote 디렉터리 생성
--bare
옵션은 작업을 할 수 없고 저장소로서의 기능만 수행 할 수 있는 공간을 만드는 옵션
cd remote
로 이동 후 ls
로 파일목록을 확인 해 보면 .git
디렉터리 안에 들어가는 파일들의 목록까지 확인 가능
--bare
는 즉, working directory가 없는 .git
디렉터리의 내용만 존재하는 저장소
- 원격저장소는 보통 원격저장소라는 목적만 유지하기 위해 작업이 불가능하도록
--bare
옵션을 넣도록 함
cd local
로 돌아와서, remote 원격 저장소에 local 지역 저장소를 연결하고 push
git remote add 현재 디렉터리
(ex. git remote add origin /home/git/git/remote
) 입력
origin 경로
로 경로를 작성하면 origin이 경로를 가리키는 역할을 하게 됨
git remote -v
로 잘 연결되었나 확인
- 저장소를 지우고 싶다면
git remote remove origin
을 하면 됨
- 저장소 master 브랜치에서
git push
를 하면 연결시킨 원격저장소인 remote폴더로 동기화 됨(업로드)
git push
를 치면 여러 메세지가 나옴
git push
시 나오는 여러 메세지 중, git config --global push.default matching
은 깃이 알아서 자동으로 처리하는 부분
git config --global push.default simple
은 사용자가 명시적으로 어디에서 어디로 push를 하겟다고 지정한 것에 대해서만 push를 하겟다는 보수적인 옵션
- git이 새 버전에선 matching 말고 simple 방식을 사용한다는 의미
git config --global push.default simple
로 기본 push 방식을 matching에서 simple로 변경
- Push 방식을 변경 후
git push
를 하면 아까의 메세지는 사라짐
- 출력되는
git push --set-upstream origin master
에서 origin master
는 현재 브랜치(master)가 push할 때 origin의 master 브랜치로 push한다는 의미
--set-upstream
은 앞으로 master 브랜치에서 push하면 자동으로 origin의 master로 push하겟다는 의미
- 즉,
git push --set-upstream origin master
은 명시적으로 연결을 세팅해주는 옵션
git push --set-upstream origin master
를 하면, 잘 연결 된 것을 확인 할 수 있음
cd ../remote
로 이동한 후 git log
를 하면, local의 버전이 remote에 똑같은 내용이 들어가 있는 것을 볼 수 있음
- 중요사항
- local pc에 원격저장소를 만들 때는
git init --bare remote
로 --bare
옵션을 활용하여 저장목적만으로 작동하도록 설정
- 원래 작업 디렉터리(working space)로 돌아와서
git remote add 현재 디렉터리
로 지역 저장소를 원격 저장소에 연결
git remote -v
로 잘 연결 되었나 확인
git remote remove origin
을 하면 연결 해제
- 작업 디렉터리에서 원하는 브랜치(ex. master)로 설정 후,
git config --global push.default simple
로 연결방식 정의
git push --set-upstream origin master
로 명시적으로 연결을 세팅
- 다음부턴
git push
로 동기화
- 수업 중 ‘My server’라는 수업과 ‘Github’라는 수업이 있음
- My server: 직접 서버가 있어서 자신의 서버를 이용해서 원격 저장소를 운용하는 방법(어려움)
- Github: 자신의 서버를 운용하는것이 아니라 github등에서 제공하는 온라인 서버를 이용해서 원격 저장소를 운용하는 방법(쉬움)