생활코딩

Coding Everybody

코스 전체목록

닫기

원격저장소

수업소개

원격저장소는 소스코드와 버전을 백업하고, 다른 사람과 협업을 하기 위한 핵심적인 기능입니다. 여기서는 원격저장소에 대해서 알아봅니다. 

원격저장소의 기초

 

댓글

댓글 본문
작성자
비밀번호
  1. 김수현
    [ 수업소개 ]
    영어로 remoute repository
    local repository와 대비되는 개념임
    원격저장소 2가지의 중요한 의미
    1) 백업
    2) 협업
    프로젝트가 커지는 과정에서 굉장히 중요한 의미가 있음
    혼자 개발한다면 > 드롭박스 , 구글드라이 클라우드 스토리지 서비스를 이용
    버젼관리하고 있는 디렉토리 통체로를 백업을 하면 > 원격저장소의 효용을 이미 가지고 있는 것
    혼자서 개발시 이것으로도 충분
    다른 사람과 협업을 한다고 한다면
    그것으로는 어림없기 때문에 꼭 해야 함

    [ 원격저장소의 기초 ]
    혼자 프로젝트하는 것을 시뮬레이션 해보겠다.
    git init local
    ls -al
    cd local
    vim f1.txt > a > git add f1.txt > git commit -m 1
    이렇게 버젼을 만들다가
    백업/협업을 하고 싶은 경우 > 원격은 상대적인 개녕임 > 커밋하고 있는 저장소를 지역저장소라고 하고
    그 지역저장소와 연결되어서 동기화 되는 저장소를 원격저장소라고 하고 > 일반적으로 원격저장소는 같은 컴퓨터 안에 있지 않고
    인터넷을 통해서 서로 다른 컴퓨터에 연결이 되어 있음. 그렇지 않으면 백업으로써 의미가 없고 협업도 같은 컴퓨터로 안함
    하지만 인터넷으로 연결하는 것은 다소 복잡 + 복잡성 때문에 응용력이 떨어질 수 있음.
    한대의 컴퓨터안에서 다른 디렉토리에다가 원격저장소를 만들고 그 원격저장소에 커밋하는 모습을
    여러분들에게 보여드리겠습니다. 그런데 이작업은 제가 해본 결과 현시점에서 맥에서는 잘 안됨
    안되는 경우도 있고 > 이와 같은 방법으로 운영되는 경우가 거의 없기 때문에 혹시 안되더라도 하고있다라고 생각하고 들어주면 됨
    실습이 중요한 수업이 아님

    local 디렉토리에서 원격디렉토리에 동기화하는 모습을 보여주겠음(3:5)
    부모 디렉토리로 가서 git init --bare(벌거벗은, 맨살, 작업은 할 수 없고 저장소로서의 기능만 수행 가능 저장소를 만드는 옵션임)
    git init --bare remote(이름)
    현제 디렉토리에 remote라는 디렉토리가 생겼고 > cd remote > ls -al
    여러파일들이 생겨 있음 > .git디렉토리에 들어가는 목록들임
    .git의 내용만 존재(워킹디렉토리는 없음)
    원격저장소는 순수하게 유지하기 위해서 어떠한 작업도 않게 하기위해서 bare라고 하는 옵션을 주어서 수정/작업이 불가능하게 하는 것이 일반적 + 다르게 하면...힘듬
    원격저장소를 만들경우 bare를 사용한다로 알아둘 것

    cd .. > cd local > 원격저장소에 연결시키고 push를 해보겠음
    git remote add (저장소의 주소)
    현제디렉토리의 주소는 pwd
    (/c/Users/user/documents/remote)
    경로를 복사하고 로컬만 리모트로 바꾸면 될 것임
    git remote add /home/git/git/remote
    git remote add origin /home/git/git/remote <-- 경로를 항상 이렇게 쓰는 것은 귀찮은 일(origin > 별명같은 것임)
    아무 것도 안나오면 잘된 것임
    잘 됐는지 확인 > git remte -v
    푸쉬/패취 이것은 몰라도 됨
    저장소를 지우고 싶다 > git remote remove origin(이렇게 하면 지워지는 것임, 사용설명서를 보면됨)
    git push (현제 브랜치는 마스터임, 원격저장소에 똑같은 이름의 브랜치를 푸쉬하고 싶은 경우임)

    메시지가 나옴 > matching(깃이 알아서 처리) + simple(명시적으로 어디에서 어디로 푸쉬를 하겠다고 지정한 것에 대해서만 푸쉬를 하겠다고 하는 보수적인 옵션임)
    기존의 매칭방법에서 심플방식으로 바꿨다라고 되어 있음. 여러분은 심플방식을 사용하는 것이 좋음. 좀더 엄격한 모델이다. 이렇게 생각하면 될 것 같음.

    여기에 있는 것을 카피엔페이스트하면 깃의 설정을 시스템에 전역적으로(global) 푸쉬의 형식을 심플로 바꾼다는 뜻임
    git config --global push.default simple
    그리고 다시 푸쉬를 하면 (git push)
    위 박스안의 부분은 윈도우에서는 나오지 않음

    아까 메시지는 없어졌고 git push --set-upstream origin master <-- 이 메시지는 현브렌치(git branch)를 오리진의 마스터브렌치로 푸쉬한다라는 뜻임
    마스터에서 깃푸쉬하면 자동으로 오리진의 마스터로 푸쉬하겠다(--set-upstream)의미
    원격저장소로 가서 git log를 해보면 > cd .. cd remote > git log
    이렇게 해서 지역저장소의 것을 원격저장소에 푸쉬해서 동기화 시키는 방법에 대해 살펴봤음.

    이번 시간에 가장 중요한 것(11:20)
    1) git init --bare 원격저장소
    2) 업로드(푸쉬) 푸쉬명령어를 사용하면 된다.

    선택해서 수업을 듣는 방법에 대해서 설명(12:3) <-- 모든 수업을 다 들을 필요가 없기 때문
    MyServer라는 수업 <-- 자신의 서버가 있어서 운영하는 방법 <-- 더 어려움 + 깃허브 수업은 꼭 들을 필요가 있음
    Github라는 수업이 있음 <-- 블라인 서비스를 제공하는 서버를 이용하여 운영하는 방법
  2. git init --bare [name]
    git remote add [nickname] [path]
    git remote -v
    git remote remove [nickname]

    git config --global push.default simple
    git push
    git push --set-upstream origin master
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기