Upload
hyeok-oh
View
103
Download
0
Embed Size (px)
Citation preview
Git(msysgit) 설치하기
• 다운로드: http://www.git-scm.com/downloads
(설치파일을 실행하고 Next버튼을 눌러줍니다)
• 바탕화면에 다음 아이콘을 실행합니다
• 커맨드 라인에 git --version을 입력합니다 (버전 정보가 나오면 설치 성공)
Git(msysgit) 설치하기
Git Bash
$ git --version git version 2.3.2 (Apple Git-55)
SSH키 등록하기
• SSH키 쌍(Public/Private)을 생성합니다
$ ssh-keygen -t rsa -b 1024 -C “[email protected]”
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]
• SSH키를 ssh-agent에 등록합니다
$ eval “$(ssh-agent -s)” Agent pid 50530 $ ssh-add ~/.ssh/id-rsa
SSH키 등록하기
• (1)profile setting -> (2)SSH Keys -> (3)Add SSH Key1
2
3
• ~/.ssh/id_rsa.pub의 내용을 Key필드에 입력합니다
Git 이야기
• 버전관리가 왜 필요할까요?
0530_최종완성 0530_진짜최종0530_최종완성_진짜끝
이메일, 카톡, 알집으로 한번쯤은.. 나중에 보면 이 파일이 저 파일 같고.. 실수로 최근 버전을 지우면?..
Git 이야기
• SVN이랑은 조금 다르다던데..
작업공간 저장소
서버내 컴퓨터
commit
SVN
작업공간 원격저장소
GitHub, GitLab 등내 컴퓨터
로컬저장소
commit push
GIT
Git 이야기
• 덕분에 이런 장점들이 있습니다
1) 부담없이 커밋할 수 있습니다(로컬저장소에서 마음껏 테스트하고 연습할 수 있습니다)
2) 원격저장소를 사용할 수 없어도 계속 버전관리가 가능합니다(인터넷을 경유하지 않고 커밋을 계속해 나갈 수 있습니다)
3) 원격저장소가 망가지면 로컬저장소로 복원이 가능합니다(모든 로컬저장소가 하나의 저장소이기 때문입니다)
Git 이야기
• Git은 작업공간과 로컬저장소 사이에 한 단계가 더 있습니다
작업공간 원격저장소
GitHub, GitLab 등내 컴퓨터
로컬저장소
commit push
GIT
스테이지 영역
add
• Git에서 파일은 다음과 같은 상태로 관리됩니다
Untracked
Tracked Staged
Modified
Unmodified(Commited)
add
commit
modify
Git 이야기
• 원격 저장소에서 다른 사람이 작업한 내용을 받아올 때
작업공간 저장소
서버내 컴퓨터
update
SVN
작업공간 원격저장소
GitHub, GitLab 등내 컴퓨터
로컬저장소
merge fetch
GIT
pull
Git 이야기
• 앞서 말한 것 외에도 더 많은 것에 얘기하고 싶었지만.. (시간을 핑계로 넘어가겠습니다)
1) 스냅샷(SVN은 파일의 변화를 저장, Git은 해당 시점의 스냅샷으로 관리합니다)
2) 브랜치(브랜치를 나눠서 마음껏 테스트하고 삭제하거나 병합할 수 있습니다)
3) 태그(커밋 이외에 태그를 지원해 중요 시점을 표시할 수 있습니다)
4) 머지/리베이스(여러개의 브랜치를 병합하는 방법입니다) stash, diff, 대화형 커밋 등...
첫 번째 PUSH 하기
• git에 내 정보 등록하기 (commit을 하게되면 author로 표시할 정보 등록)
• git init(현재 디렉토리를 working directory로 만드는 명령)
$ git config --global user.name “Hyeok Oh” $ git config --global user.email “[email protected]” --global 옵션은 전역 설정, 해당 옵션 없으면 현재 working directory만 적용합니다 $ git config --list git 설정 상태를 확인합니다
$ mkdir first $ cd first $ git init first디렉토리를 working directory로 만들었습니다 (.git이라는게 생겼습니다)
첫 번째 PUSH 하기
• git status(working directory에 있는 파일들의 상태 확인 명령)
• README.md 파일 생성(md는 markdown문서의 확장자)
$ git status
$ vim README.md 다른 편집툴로 first디렉토리에 만들고 저장해도 됩니다
i(insert mode) -> “Hello World” 입력 -> ESC -> :wq $ git status
첫 번째 PUSH 하기
• git add 파일/디렉토리명 (untracked/modified한 파일을 staged로 만드는 명령)
• git commit / git commit -m “할말”(staged된 파일들을 unmodified(commited)한 상태로 만드는 명령)
$ git add README.md $ git status
$ git commit -m “initial commit” $ git status
첫 번째 PUSH 하기
• git log(commit한 내역을 볼 수 있는 명령)
• git remote add 별명 저장소주소 (remote repository를 등록하는 명령)
$ git log git log --oneline --decorate --graph 이렇게도 해보세요
$ git remote add origin [email protected]:oh4851/Javascript-basic.git $ git remote -v 현재 등록한 remote repository를 확인할 수 있습니다
첫 번째 PUSH 하기
• git push 별명 브랜치명(local에서 작업한 내역을 remote repository에 반영하는 명령)
$ git push origin master git push -u origin master 다음부터 git push를 하면 자동으로 origin의 master브랜치로 푸쉬합니다 git push origin +master 강제(force)로 푸쉬하도록 함 *주의, 공동 작업자가 무척 화낼 수 있습니다
참고자료
• Pro Git 서적 번역http://git-scm.com/book/ko
• git-basic-commandshttp://www.slideshare.net/insanehong/gitbasiccommands
• 버전관리를 들어본적 없는 사람들을 위한 DVCS - Git http://www.slideshare.net/ibare/dvcs-git
• svn 능력자를 위한 git 개념 가이드http://www.slideshare.net/einsub/svn-git-17386752