유다시티는 참 멋진 사이트인것 같다. 무료로 기술 교육을 제공해 준다. (난 유료인지 알았어…)
나노 디그리 등 사람의 피드백이 있는 것만 유료이고 나머지는 무료이다. MOOC의 새로운 바람을 몸소 느끼고 있는 중이다.
물론 여러가지 냄새가 나기는 하지만 좋은 뜻에서 하고 있는 것은 맞는 것 같다. (미생 포스팅을 하고 싶지만..오늘은 나노 디그리의 Github 이용 방법에 대해 올린다.
나노 디그리 신청을 못한 사람은 Intro to HTML, CSS – > How to Use Git 을 보면 된다.
– 두 파일의 차이 발견하기
커맨드 창에서 FC old파일 new파일 하면 차이점을 알 수 있다.
– 버전컨트롤 하기
코드에 변화가 있을 때 마다 GIT을 통해 업데이트 할 수 있다. 깃이라고 부른다. 라이누스 토발즈가 만들었다.
뭐 어쨌던 저장소 같은데다 코드를 변경해서 히스토리를 볼 수 있는 것 같다. 공동 작업도 가능하고.
– 커밋 Commit
이건 코드의 일부분의 변화를 보내는 것이다. 이것들을 깃이 머물고 있다가 버전 컨트롤로 보낸다. 새로운 개념이네.
여러 사람이 작업하면 여러 사람이 하나의 코드에 각각 커밋할 수 있고 이것이 나중에 버전 컨트롤에 등록이 된다.
– 이런식으로 컨셉맵을 그려서 개념을 설명해 준다. diff 는 파일간의 차이점을 알아내는 리눅스 명령어이고 이 차이점을 발견하여 커밋한다. 이런 방식의 강의는 약간 논리적인 힘을 기를 수 있게 해준다.
– 윈도우에서 깃을 설치하는 방법이다.
https://www.udacity.com/wiki/ud775/install-git/install-git-windows
이쯤되면 깃 광고 같은데…깃허브에서 지원좀 많이 해줬다보다.
깃을 설치했다!
이것이 git bash 화면이다. 후에 커스터마이징 해서 조금 다르게 보일 수 있다.
– git 을 이용하는 방법 (이거 알려줄려고 참 멀리 돌아온다…)
git init 하면 빈 저장소를 만들어준다. (리포지토리)
git add 파일이름하며 스테이지 에어리어에 추가해준다. (중간 장소)
git commit 한다.
– git을 배울 때 새로운 개념들이 많은 것 같다. 그 중에 하나가 브랜치 개념이다. 스테이징 개념도 새롭고…
마스터 브랜치는 메인 줄기이다. 그런데 이 중에 샛길을 만들 수가 있는데 그게 브랜치이다.
마스터 브랜치에서 벗어나 새로운 것을 해볼 수 있는것.
그리고 이 브랜치가 마음에 들면 나중에 마스터 브랜치와 합칠 수 있다. (Merge)
– Git hub 사용법
github에 가입해서 + 버튼을 눌러 새 repository를 만든 후 다음 커맨드 사용.
– 퍼미션 에러가 나면..
이것때문에 한참 고생했는데 ssh 키를 등록을 안했기 때문이다.
일단 pc 에서 ssh 키를 생성해 준후에 : http://git-scm.com/book/ko/v1/Git-%EC%84%9C%EB%B2%84-SSH-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0
이걸 깃허브의 디플로이 키에 등록해 주면 된다.
그럼 커밋 끝.
———————– 정리해 보자—————————-
깃허브는 코드 관리 시스템이다.
git init 으로 저장소를 만든다.
코드를 수정한다.
add (파일이름)으로 수정한 코드를 스테이지로 보낸다.
git commit 으로 스테이지에서 repository로 보낸다.
git push origin master 로 git hub로 보낸다.
+ 브랜치를 만들 수 있고 이 브랜치가 마음에 들면 머지할 수 있다.
———————————————————————–
음 근데 이 귀찮은걸 왜 하는 것일까 ;; 아직도 이해 안감.
logical movement 가 있을 때 마다 차곡차곡쌓아나가는 것이랄까.
깃허브는 오픈 소스를 지향하고 사람들이 공동 작업을 지향하는 곳인것 같다. 먼 곳을 발치에서나마 느껴봄.
————————————————————————–
– git branch -a
모든 브랜치를 볼 수 있음.
아 갈수록 영어 + 뭔말인지 모르겠다.
– branch 는 곁가지를 만들 수 있는것.
git branch diffrent-oil 하면 가지가 만들어 진다.
git chectout differnt-oil 하면 해당 가지로 이동.
여기서 add 하고 push 하면 깃허브로!
– pull request 는 fork 한 곳에 가지를 치고 이걸 마스터한테 보내고 싶다는것을 의미한다.
– git fetch origin
명령을 사용한다. 명령을 실행하면 우선 origin 서버의 주소 정보(이 예에서는 git.ourcompany.com
)를 찾아서, 현재 로컬의 저장소가 갖고 있지 않은 새로운 정보가 있으면 모두 내려받고, 받은 데이터를 로컬 저장소에 업데이트하고 나서, origin/master 포인터의 위치를 최신 커밋으로 이동시킨다.
—————————————–
좀 헷갈려서 GIT 명령어 정리!
git config –global user.name [user name] 작업자 이름 설정
git config –global user.email [user email] 작업자 이메일 설정
git config –global –list 설정값(이름 및 메일등 ) 확인
git init git 저장소(repo) 만들기
git remote add [remote name] [remote addres] 별명으로 원격지주소를 저장
git remote rm [remote name] 별명의 원격지를 삭제
git remote rename [remote name] [new name] 별명을 새로운 별명으로 변경
git fetch [remote name] remoet의 모든 정보를 가져옴(모든 branch)
git pull 저장소에서 변경 내용 가져오기
git push commit들을 master 저장소에 저장
git push [remote name] [localbranch name] local branch의 내용을 업데이트
git push [server] tag [TAG] server에 tag 전송
git push [server] –tags 변경된 모든 tag 전송
git push [server] [L.B]:[R:B] server 에 local branch 를
-Remote branch이름으로저장
git tag [TAG NAME] 저장소에 태그를 붙인다.
git branch [branch name] 저장소의 branch name으로 branch를 만든다.
git branch branch 목록을 본다.
git branch -a 현재 생성된 모든 local branch와
reomte branch 확인
git checkout [branch name] 다른 브랜치로 전환
git checkout -b [branch name] branch 생성
git checkout [file or folder] git repo 기준 마지막 commit 상태로 돌림
git checkout [id] [file or folder] git repo 기준 id에 해당하는 commit 상태로 돌림
git checkout -f 아직 commit 되지 않은 working tree와 -index 수정정사항 모두 사라짐
git merge [branch name] branch의 내용을 가져와 합침
git add [file or folder] git에 file 또는 folder 추가
git add * git에 모든 file 또는 folder 추가
git rm [file or folder] git 파일 또는 폴더 제거
git status 현재 git 상태 보기
git commit -m [message] message를 repo에 저장
git diff local과 remote의 차이점을 보여줌
git remote remote서버 확인
—————————
아 점점 더 헤매고 있다.
-
git remote set-url origin git@github.com:USERNAME/REPOSITORY2.git
뭔가 clone 을 해서 git을 받아왔을 때 push를 다시 해보면 인증이 안되어 있다고 한다. 디플로이키에 등록이 안되어 있기 때문인가…? @.@
– pull request 란 무엇인가? 여러 사람이 공동 작업을 할 때 끌..어오는 것? 비교해서 이거 할지 말지 하는 것.
– “fork”, “fetch”, “pull request”, or “fast-forward merge”.
– ssh 인증 문제가 있는 경우 https 로 불러오면 된다! 뭔가 앞으로 나아간 늤낌.
마지막까지 pull request 가 뭔지는 모르겠다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
끝. 쏘리..