-
Notifications
You must be signed in to change notification settings - Fork 1
/
GIT: [깃헙 및 Sourcetree 사용법 특강]
102 lines (81 loc) · 5.06 KB
/
GIT: [깃헙 및 Sourcetree 사용법 특강]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
===형상관리(깃헙) 및 소스트리 사용법 특강======
Lecturer: 김동현
Date: 20190803
Venue: 플레이데이터
http://donghyun.info/about
https://github.com/deepmining3825
1. 버전관리(버전 콘트롤) 시스템이란?
- SVN, SourceSafe 등
- 버전이란 의미있는 변화들(기능 개선 or 버그 수정)이고, 버전 관리란 변화의 관리를 의미
2. 버전(형상)관리의 필요성
- 코드 히스토리 추적
- 코드통합
- 고객사별 버전 관리
- 테스트에 용이함(로컬 저장소: 나만 사용할 수 있음)
- 책임소재 명확화
3. Git
<offline>
[ woking directory(working space) ] --add--> [ staging area ] --commit--> [ Local Repository ]
<--------checkout / merge---------
pull (fetch+merge) push fetch clone
[ remote repository ]
<online>
4 Sourcetree 프로그램 사용 권장
- Sourcetree 사용 이점 : 원하는 OS / 개발툴/ 프로그램(이클립스 등) 쓰지 못하는 상황 등에서 유용하게 사용가능
1) Remote to local
- Sourcetree에서 clone 누르고 GitHub에 만든 repository 주소 넣는다
- 이클립스에서 무언가를 작업하고 우클릭으로 team -> share 누른 후 Sourcetree와 연동된 컴퓨터에 만든 remote-to-local 폴더와 연결
- 다시 Sourcetree로 오면 staging area에 올라가지 않은 파일들 생성 확인할 수 있음. 그 파일 중,
- /.gitignore을 메모장으로 열어서 빈폴더, classpath(이클립스에서만 필요함) 등 공유할 필요 없거나 하면 안되는 것들 설정
<gitignore 파일에 넣어야 하는 내용> : 그대로 붙여넣기
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders
.classpath
.project
- 이 단계에서 staging area에 파일이 6개에서 2개로 줄어든 것을 확인할 수 있음
- /.project 는 (자신이 프로젝트의 팀장이라면) 처음에는 공유하고 이후에는 필요없으므로 .gitignore에 추가해놓으면 된다
- staging area에 올리기
- commit message(꼭 적어야함!!!)
- commit!! 이 때도 원격저장소는 그대로임.
- push -> 원격저장소에는 origin(원격저장소 이름) / master(브랜치 중 하나, 디폴트 브랜치)라고 뜬다
- 깃헙에 업뎃되어있음을 확인할 수 있음
- 항상 깃헙 branch 설정사항이 master인지 develop 등인지 주의해야 한다
2) Local to remote
- 이클립스의 새로운 working space에서 작업하고 우클릭으로 team -> share -> Sourcetree와 연동된 컴퓨터 local-to-remote 폴더와 연결
- 원격 repository 만들고
- Sourcetree에서 에서 '저장소'탭 클릭 -> '저장소 설정' -> 연결하려는 원격 repository 주소 붙임
- /.gitignore 설정 이전과 동일하게
- staging area에 올리기 -> 올라간 상황
- commit message -> commit -> push
3) 브랜치 생성
- 소스코드 깃플로우에서 실행 -> 왼편에 develop 생성(초기화 성공한 것이라 보면 됨)
- 개발할때는 develop에서 하다가 버전이 완성되면 그때 마스터 브랜치로 복사하는 것. 이때master는 branch 수준으로 올라가게됨
- develop branch, release branch, feature branch 등 상황별/목적별로 사용 가능
- 왼편의 master 더블클릭하여 현 단계를 master로 설정한 후 develop에서 우클릭하여 '현재 브랜치로 develop 병합' 클릭
- 하지만 이때 원격저장소에는 변경사항이 반영이 안된 상황. push를 하면 비로소 원격에도 반영
4) 기능 브랜치 생성(로그인, 사인업 기능 등)
- 소스트리에서 브랜치 상에서 깃플로우 선택. 기능에 '로그인 기능'이라 쓰고
- 이클립스에 오면 설정변경 확인 가능. 새로운 코드 작성 후 저장
- '사인업 기능'도 동일하게 만듦
- Sourcetree에서 커밋메시지와 함께 staging area에 올림
5) develop 브랜치에 병합
- 사인업에서 '개발완료'라는 메세지와 함께 수정사항 커밋
- 우클릭하면 '커밋 되돌림' 가능
- 로그인에서 '개발완료'라는 메세지와 함께 수정사항 커밋
- develop 브랜치에 합쳐야 하는데, 이때 충돌 가능성이 많음. 따라서 개발중에는 미루지 말고 매일매일 develop 브랜치와 병합하는것이 바람직하다
- 로그인 브랜치를 클릭한 상태에서에서 우클릭으로 develop 브랜치를 가져옴
- develop에서 병합. 이때 develop 브랜치에 로그인 클래스 생긴것을 볼 수 있음
6) 푸쉬 되돌리기
- Soucetree 우측 '터미널' 클릭
- git reset + 돌아가고 싶은 시점의 아이디 입력
- git push -f
http://donghyun.info/git.pdf