Ruby Coin

Rails 와 프론트 엔드 기술을 이용해 흥미 위주의 빠른 웹 개발 방법론

코스 전체목록

닫기

원격저장소

수업소개

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

원격저장소의 기초

 

댓글

댓글 본문
  1. 장휴일
    원격 저장소의 기초

    부모 디렉토리에서 git init --bare remote: 저장소로써의 기능만 수행하는 저장소를 생성

    *bare 벌거벗은, 맨(살)

    remote라는 디렉토리 생성
    remote 디렉토리에 저장소에 들어가는 기본적인 파일들이 생성이 된다
    .git
    원격 저장소의 기능만 순수하게 사용하는.
    : 원격 저장소를 만들 때 에는 --bare 명령어를 꼭 넣도록 한다.

    git remote add origin [현재 디렉토리 경로]

    git remote -v
  2. chehwun.kim
    widnows 환경에서
    $ git remote add origin /d/test/gitRepo/Documents/gitfth7/office
    했는데 아래와 같은 경로 error가 발생하는 경우
    error: failed to push some refs to 'D:/test/gitRepo/Documents/gitfth7/office'
    config파일 확인해 보시면 아래와 같이 입력되어 있으니 수정하시면 됩니다.

    $ cat ./.git/config
    [remote "origin"]
    url = D:/test/gitRepo/Documents/gitfth7/office
  3. kslee
    맥에서도 위 수업내용 진행이 원활하게 잘 진행되었습니다.
    감사합니다.

    os : version 10.14.6(18G87)
    git : version 2.22.0
  4. PassionOfStudy
    git init --bare
    bare 옵션은 작업은 할 수 없고 저장소로서의 역할만 수행한다.
    (수정이 불가능, 원격 저장소를 만들 때 사용하는 옵션)

    git push —set-upstream origin master
    현재 우리의 master브랜치를 push할 때 origin의 master브랜치로 푸쉬한다.
  5. 초간단
    $git init local 로 local이란 저장소 폴더 만듭니다. local들어가서,
    $vim f1.txt
    $git add f1.txt
    $git commit -m 1
    이걸 원격저장소에 올리고 싶다!
    일단은 컴퓨터 다른곳에 원격저장소를 만들어서 연습하자.

    $cd ..
    $git init --bare remote (bare는 저장만할수있는 공간. 작업은안됨.그런 remote 저장소를 만든다)
    $cd remote
    $ls -al (.git안의 파일들의 목록들이 나옴. 즉, working directory가 없어서 다 끄집어냄. 작업X인 폴더)
    $cd ../local/
    $pwd (현재 주소 (/home/git/git/local) 확인)
    $git remote add origin /home/git/git/remote (현재 저장소에 원격저장소를 add한다.
    그 저장소의 주소는 /home/git/git/remote 이다.)
    (origin 뒤에 저렇게 주소쓰면, origin을 저 주소의 별명으로 쓰겠음을 나타냄)
    $git remote -v
    (origin 별명은 저 주소의 저장소이다~)

    $git push (현재 master브랜치인데, 이를 원격저장소로 push(업로드)한다)
    설명을 보면, 예전 matching에서 simple방식으로 바뀌었다라고 나옴. simple방식 사용하자.
    설명 중간에 있는 git config --global push.default simple 복사해서
    $git config --global push.default simple 입력하자. (git의 설정을, 이 시스템에 전역(global)적으로,
    push형식의 simple방식으로 바꾼다는 뜻임)
    $git push 다시 입력하면, 그 긴 설명없어졌고,
    git push --set-upstream origin master가 나옴.
    $git branch 을 해보면
    이 master branch를 push할 때, origin의 master branch로 푸쉬한다는 뜻임.
    $git push --set-upstream origin master 가 로컬저장소와 원격저장소를 명시적으로 연결시키는것임.
    입력엔터.
    $ cd ..
    $ cd remote/
    $ git log 하면, commit이 전달되온걸 볼 수 있음.
  6. software.lee
    감사합니다.
  7. 정요섭
    $ git push --set-upstream origin master 라고 입력을 하니
    Everything up-to-date
    Branch 'master' set up to track remote branch 'master' from 'origin'.
    라고 뜨고 영상처럼 원격저장소로 이동을 하고

    Owner@DESKTOP-P1LF56E MINGW64 ~/documents/remote (BARE:master)
    $ git log
    fatal: your current branch 'master' does not have any commits yet
    와 같은 오류가 뜹니다..
    오류를 보니 master가지에서 commit을 아직 안해줬다는것같은데..
    앞에서 분명 f1.txt를 commit 해줬는데.. 왜 이런 문제가 생기는지 알려주세요 ㅠㅠ
  8. 제로스
    감사합니다!!
  9. 최동희
    외장하드에 리모트저장소를 만들었더니 생각보다 쓸모가 있네요.
  10. 오빠는다르다
    감사합니다~!
  11. 김수현
    [ 수업소개 ]
    영어로 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라는 수업이 있음 <-- 블라인 서비스를 제공하는 서버를 이용하여 운영하는 방법
  12. code
    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 자세히 보기