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파일 확인해 보시면 아래와 같이 입력되어 있으니 수정하시면 됩니다.
$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이 전달되온걸 볼 수 있음.
$ 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 해줬는데.. 왜 이런 문제가 생기는지 알려주세요 ㅠㅠ
[ 수업소개 ]
영어로 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라는 수업이 있음 <-- 블라인 서비스를 제공하는 서버를 이용하여 운영하는 방법