원격저장소/원격저장소의 기초

|

원격저장소(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등에서 제공하는 온라인 서버를 이용해서 원격 저장소를 운용하는 방법(쉬움)