Download presentation
Presentation is loading. Please wait.
Published by희아 황보 Modified 8년 전
1
trillion
2
목차 Git 이란 ? Git 이 왜 좋은가 ? Github 란 ? Github 등록절차 Git 설치 및 사용법 ( 번외 ) Egit 란 ? Egit 을 이용한 프로젝트 관리법 용어 정리
3
Git 이란 리누스 토발즈가 linux 소스를 관리하기 위하여 만든 형상관리 프로그램 외국에서 많이 사용됨 분산형 버전 관리 시스템 (distributed version control) : 네트워크나 중앙 서버에 의존적이지 않음 => 개발자 개개인이 자유롭게 변경 이력을 관리함 => 속도가 빠름 무료 오픈 소스 Git 으로 진행된 대표적인 프로젝트 : GIT, linux kernel, perl, eclipse, Gnome, KDE, Qt, Ruby on Rails, Android, PostgreSQL, Debian, X.org 등등 위키 정보는 : http://enc.daum.net/dic100/contents.do?query1=10XX266781
4
Git 가 왜 좋은가 Version Controller 의 장점 – 형상관리 자체는 SVN 과 유사. – 하지만 로컬만으로도 실행이 가능해서, 네트워크 접속이 불가능 할 때도 혼자서 버전관리를 할 수 있음 범용성의 장점 – 공짜 – 리누스 토발즈가 git 에 대해 언급하고 나서 급격하게 퍼져나감 – 외국에서 엄청 많이 씀 => 외국 기업에서는 git 같은 오픈 소스 프로젝트 참여 경력을 이력으로 본다함 – 다른 사람이 진행하는 프로젝트를 내 원격 저장소로 복제 (Clone) 하여 내 맘대로 개발 가능
5
Github 란 Git 를 사용하는 프로젝트를 지원하는 웹 기반 호스팅 서비스 루비온 레일즈로 작성됨 영리적 서비스와 오픈 소스를 위한 무상 서비스를 모두 제공 Github 는 가장 인기있는 git 호스팅 사이트 ssh, git, http 프로토콜을 통하여 프로젝트 소스코드에 접근 가능 http://github.com/
6
회원가입 Signup 을 한다 Githib.com 에 접속한다
7
회원가입 무료계정생성
8
회원가입 가입양식을 채우고 계정을 만든다
9
Git 설치 개별적으로 더 공부해보고 사람은 해볼 것 – 이클립스 플러그인 Egit 설치하면 없어도 무방 Git 설치과정 및 튜토리얼 (github 홈페이지 참조 ) http://help.github.com/win-set-up-git/ ( 아래쪽의 ssh 인증 과정은 프로젝트 호스팅하기 위해 필요, 학교에서는 안됨 ssh 프로토콜을 막아놓은 듯..) =>http 프로토콜을 사용하면 안 해도 진행 가능 : http 방식은 동기화 속도가 느리지만 별도의 인증과정이 없음 http://msysgit.googlecode.com/files/Git-1.7.9-preview20120201.exe Windows 사용자는 바로 다운http://msysgit.googlecode.com/files/Git-1.7.9-preview20120201.exe
10
Repository 생성 및 인증 Git 더 공부해보고 사람은 해볼 것 http://help.github.com/create-a-repo/ 자세한 내용은 github 의 튜토리얼이나 네이버 참조할 것 참고 사이트들 : http://binggrec.tistory.com/116 http://blog.hibrainapps.net/18 http://namhyung.springnote.com/pages/3132772#toc_27 http://h9911120.blog.me/50137718243 http://blog.naver.com/PostView.nhn?blogId=niee&logNo=130112170 119http://blog.naver.com/PostView.nhn?blogId=niee&logNo=130112170 119
11
Egit 란 이클립스의 Git 플러그인 이걸 쓰면 앞의 Git 설치 안해도 됨 Git Windows 를 설치하면 Git GUI 가 있지만, Egit 로도 GUI 적으로 볼 수 있음 몇 년전 까지는 소스가 날라가거나 하는 둥의 불안정한 현상이 있었던 듯..
12
Egit 설치 이클립스 help>eclipse marketplace… 를 선택한다.
13
Egit 설치 (2) Find: 에 Egit 를 검색해서 나오는 Egit – Git Team Provider 를 설치한다.
14
Egit 설치 (3) 다음
15
Egit 설치 (4) 약관에 동의하고 피니쉬
16
Egit 설치 (5) 설치가 되길 기다린다.
17
Egit 설치 (6) 이클립스를 재시작한다
18
Egit 에 사용자 정보 등록 이클립스 메뉴의 Window>Preferences
19
Egit 에 사용자 정보 등록 (2) 좌측 메뉴의 Team > Git > Configuration 선택
20
Egit 에 사용자 정보 등록 (3) User 정보의 이름과 이메일을 가입한 정보에 맞게 입력한다. : 기타 이클립스와 연동되는 git 정보는 여기서 수정할 수 있다.
21
Egit 사용 Windows> open perspective> other 를 선택한다
22
Egit 사용 (2) Git repository exploring 선택
23
Egit 사용 (3) Git repositories 에서 clone a git repository 를 선택한다. 여기서 Java 모드로 돌아갈수있다
24
원격 저장소생성하기 여기서 할 수 있다 ( 자세한 내용은 중앙의 create a repository 참조할것 )
25
원격 저장소에서 가져오기 URI 에 https://hyunkyun@github.com/hyunkyun/dateManager.githttps://hyunkyun@github.com/hyunkyun/dateManager.git 를 입력하고 아래 Authentication 을 자신의 계정과 비밀번호로 수정한다.
26
원격 저장소에서 가져오기 Origin 인 Master 를 선택한 후 next 를 누른다
27
원격 저장소에서 가져오기 코드를 받아올 디렉토리를 정한다 ( 디폴트는 사용자계정 \git\ 프로젝트명 )
28
원격 저장소에서 가져오기 소스코드가 받아진다.
29
원격 저장소에서 가져오기 이클립스의 Perspective 를 Java 로 다시 바꾼다.
30
원격 저장소에서 가져오기 소스가 받아져 있다.
31
Branch 란 ? 프로젝트의 메인 소스에서 자신이 맡은 부분을 개발하기 위해 프로젝트를 복사하고, 이를 관리하는 분기점 자세한 정보는 http://blog.naver.com/empty_wagon?Redirect=Log&logNo=20141673487
32
Branch 사용하기 새로운 모듈을 개발할 환경으로 사용할 Branch 를 생성한다. (Source ref : branch 생성의 기준이 되는 branch 를 선택한다. 자신의 branch 이름을 입력한다.
33
Branch 사용하기 코드를 수정해본다.
34
Branch 사용하기 프로젝트 우클릭 > Team> Add to Index 를 선택한다. : 변경된 소스코드를 Stage(git 변경목록, commit 전 임시저장소 ) 에 등록
35
Branch 사용하기 Commit 을 선택한다. : index 에 등록된 소스코드를 내 컴퓨터 git 저장소에 저장
36
Branch 사용하기 코멘트나 변경자, 제출자, 제출되는 소스코드를 입력 또는 확인한다. : 무엇을 수정했는지 자세하게 써야 다른 사람들이 보고 이해할수있음
37
Branch 사용하기 Push to upstream 을 선택한다 : 원격 저장소 (github 내의 저장소 ) 로 변경된 내용을 등록하는 과정
38
Branch 사용하기 어느 branch 에 등록 ( 푸쉬 ) 할 것인지 결정한다. ( 자신이 개발하는 모듈에 해당되는 branch 에 푸쉬 ) ( 모듈이 다른 모듈이랑 상관이 없으면 커밋 까지만 하고 다 끝난 다음에 푸쉬해도 상관없다 )
39
히스토리 확인 Show in history 에서 등록 정보들을 확인할 수 있다.
40
히스토리 확인 Show in history 에서 등록 정보들을 확인할 수 있다.
41
Pull ( 변경사항 가져오기 ) Master branch 에서 가져올 때 pull 을 사용 Master 가 master patch zzz 라는 Commit 을 한 상황에서 Team> pull 을 선택한다.
42
Pull ( 변경사항 가져오기 ) Master branch 에서 가져올 때 pull 을 사용 최신의 commit 을 선택하고 OK 한다.
43
Pull ( 변경사항 가져오기 ) Master branch 에서 가져올 때 pull 을 사용 변경된 것을 확인할 수 있다.
44
용어 정리 Repository Branch, Tag HEAD, Origin, Master Clone Commit Stage Push, Pull Merge, Rebase http://sapeyes.blog.me/70118257910
45
Git 개념도
46
Repository 작업자가 변경한 모든 내용을 추적하는 공간 코드의 저장소 Git 에서는 local repository 와 remote repository 로 나뉜다. Local 은 컴퓨터 Remote 는 호스팅 업체 ( 주로 github.com 을 많이 씀 ) 이 둘을 연결시켜주는 관련 키워드는 push, pull –( 주로 Push 사용, pull 은 코드 불러와서 참조할 때 쓰는 듯 ?)
47
Branch, Tags Branch 라는 것은 하나의 개발 라인을 의미. 가장 기본이 되는 master branch 에서 버그 수정이나 특정 기능 을 추가하기 위해서 개발라인을 따로 두어 작업할 수 있다 Git 저장소는 모든 분기들과 태그 (tags) 들을 가짐 사용자는 작업에 필요한 어떤 한 버전의 분기를 이 기본분기로 체크아웃 (Checkout) 한다. 이것을 작업 카피 (Working Copy) 라 고 한다. Branch 에 관한 자세한 설명 http://luhamizz.tistory.com/11http://luhamizz.tistory.com/11
48
Origin, Head, Master Origin –git 가 복사해 온 저장소를 가리키기 위해 기본적으로 사용하는 이름 HEAD – 한 개의 Branch 내에서 가장 최근에 된 Commit 을 가리키는 reference – 저장소에서 최신의 revision 을 가리키는 주소의 개념 Master – 저장소 중 기본이 되는 분기
49
Clone git clone 를 사용하면 저장소 소스코드를 그대로 checkout 받을 수 있다. 여기서 SVN 와의 차이점은 git 은 저장소가 local 에도 있기 때문에 원격 중앙 저장소의 소스 코드를 체크아웃 받을 수 도 있지만, 위와 같이 작업한 로컬의 저장소의 소스코드를 체크아웃 받을 수 있다. Local 과 Remote 의 저장소는 분리된 공간이고, 몇 가지 명 령을 통해서 연결시켜줄 수 있음
50
Commit 소스 수정사항들은 저장소로 Commit 할 수 있다. 지난 시간까지 작업한 것에 대한 새로운 Revision 을 만드는 것. 각 Commit 은 저자 (Author) 와 코멘트 (Comment) 를 저장한다. (Comment: 어떻게 수정을 했는지, 누가 Commit 했는지 ) => Commit 을 수행하는 것은 자신의 repository 에 새로운 revision 을 등록하는 과정 (SVN 의 commit 과 유사한데, 자신의 로컬에서만 수행함 )
51
Stage (Staging) SVN 과 차별화 되는 요소 저장소에 Commit 하기 전에 Commit 을 준비하는 위치 변경사항을 적용하기 전에 한번 더 변경사항을 정리하고 다듬을 수 있는 기회를 제공 변경사항을 추가하기 위해서는 git add 를 사용 –Egit 에서 Team> add to index 가 같은걸 의미 Commit 예정인 변경사항을 등록하는 과정으로 생각
52
Push, Pull Push 작업한 내용을 원격 저장소에 집어 넣는 과정 Pull 다른 사람이 작업한 내용을 로컬로 불러오는 과정 Git pull origin master 저장소 실제 주인은 push (remote 저장소로 변경사항 전 송 ) 과 pull (remote 저장소로부터 변경사항 받기 ) 의 두 명 령을 통해 변경사항들을 동기화 한다.
53
Merge 두 분기의 차이를 합치는 명령어 Merge tool 등을 사용해서 할 수 도 있음 Merge Conflict Branch 들을 합치는 과정에서 같은 파일이름으로 다른 내용을 가지 는 경우 conflict 가 발생한다. 이 경우, git 에서 자동으로 Conflict 가 나는 부분에 대해서 잡아주고, 이를 처리한 다음에 다시 Commit 하면 해결할 수 있다.
54
Rebase merge 명령이 두 분기를 합친 것처럼 rebase 는 한 분기의 변 경사항을 이용하여 패치 (patch) 를 만들고 다른 분기에 이를 적용한다. 결과는 merge 와 같지만 commit 히스토리가 좀더 깔끔하다. 즉 다른 분기의 Commit 메세지가 master 의 히스토리 최상단 에 그대로 뜸으로써 연속성을 갖는다.
55
Rebase 사용방법 다른 사람의 Branch 를 나의 프로젝트로 적용하는 방법 ( 다른 사람 모듈 적용방법 ) Team>Rebase 를 선택한다
56
Rebase 사용방법 적용할 branch 를 선택한다. : Local 은 컴퓨터 내 저장소, Remote 는 github 내의 저장소 ( 공유공간 )
57
Rebase 사용방법 적용이 되어있다. Conflict 발생시 참고 http://pinocc.tistory.com/89http://pinocc.tistory.com/89
58
그 외 이슈 Merge 와 Rebase 의 차이 http://eclipsesource.com/blogs/2011/05/30/ merging-branches-in-eclipse-git-egit/http://eclipsesource.com/blogs/2011/05/30/ merging-branches-in-eclipse-git-egit/
59
그 외 이슈 Egit Pull 사용과정에서 오류 발생시 해결법 http://enosent.tistory.com/44
60
끝
Similar presentations