지옥에서 온 Git

원격저장소

수업소개

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

원격저장소의 기초

 

댓글

댓글 본문
작성자
비밀번호
  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 자세히 보기