GitHub 실습 v.1.4 신승엽 / 유니원사업팀 2016년 1월 18일
GitHub 실습
v.1.4
신승엽 /�유니원사업팀
2016년1월18일
2 /�GitHub 실습
준비
SourceTree
- http://www.sourcetreeapp.com/
실습파일
- http://flysky.kr/github-example.zip
3 /�GitHub 실습
규칙
직접실습합니다.
슬라이드의내용에집중합니다.
GitHub기본설정
5 /�GitHub 실습
https://github.com
GitHub
6 /�GitHub 실습
- 원하는아이디와비밀번호
그리고이메일을입력한후
회원가입합니다.
회원가입
7 /�GitHub 실습
- Free를선택하고
계속진행
회원가입
8 /�GitHub 실습
가입완료!
회원가입
9 /�GitHub 실습
GitHub에가입하세요.
- 초기화면에서아이디,이메일,비밀번호입력
- 플랜은Free로
- 꼭! 이메일입력후이메일인증을받으세요.
(받지않으면계정잠김)
회원가입
GitHub과 SourceTree를이용한Git 기초사용법
11 /�GitHub 실습
오른쪽상단의플러스아이콘을누른후
New�repository를선택하여저장소를
생성할수있습니다.
저장소생성
12 /�GitHub 실습
저장소이름을작성합니다
체크합니다
저장소생성
13 /�GitHub 실습
저장소생성
14 /�GitHub 실습
저장소생성
calculator�라는이름의저장소를하나생성하세요.
- 오른쪽상단의+ 표시에서New�Repository
- 저장소이름을입력하고README�생성에체크
15 /�GitHub 실습
저장소복제
저장소페이지의클립보드아이콘을클
릭해서주소를복사합니다.
16 /�GitHub 실습
저장소복제
SourceTree의도구모음에서
Clone을클릭합니다.
Windows
MacOS X
New�Repository에서
Clone�From�URL을 클릭합니다.
17 /�GitHub 실습
저장소복제
저장소주소입력후탭키Git 저장소라는메시지확인
Windows
MacOS X
저장소주소입력후탭키Git 저장소라는메시지확인
18 /�GitHub 실습
저장소복제
저장소가복제된것을확인할수있습니다.
Windows
MacOS X
19 /�GitHub 실습
저장소복제
calculator�저장소를로컬로복제하세요.
- GitHub에서저장소주소복사
- SourceTree에서저장소복제
20 /�GitHub 실습
사용자정보설정
Windows는[Tools]�- [Options]에서
Default�user�information을설정합니다.
이곳에서설정하면별도로설정하지않은
모든저장소에이설정이사용됩니다.
21 /�GitHub 실습
사용자정보설정
[Repository]�- [Repository�Settings...]�- [Advanced]�에서
Use�global�user�settings에체크를풀고설정하면
해당저장소에만반영됩니다.
22 /�GitHub 실습
사용자정보설정
Mac에서는UI를 통해이름을한글로설정하면
Mac 이외의OS에서는이렇게깨져보이게됩니다.
23 /�GitHub 실습
사용자정보설정
$�git config --global�user.name�신승엽/협업시스템개발팀
$�git config --global�user.email [email protected]
Mac에서사용자정보를설정할때는
터미널에서아래명령을사용합니다.
생략하면현재저장소에만적용
24 /�GitHub 실습
사용자정보설정
사용자정보를설정하세요.
- Windows:�환경설정의Default�user�information수정
- Mac�OS�X:�터미널을통해명령어로수정
25 /�GitHub 실습
사용자정보설정
Mac에서명령어를통해서사용자이름을변경해도설정UI를한
번들어가면다시되돌아가는문제
https://github.com/flyskyko/git-hooks
26 /�GitHub 실습
GitFlow�설정
도구모음에서Git Flow를클릭합니다.
기본값그대로 OK를
클릭합니다.
27 /�GitHub 실습
GitFlow�설정
develop�브랜치가생성되고체크아웃된것을
확인할수있습니다.이제푸시합니다.
28 /�GitHub 실습
GitFlow�설정
도구모음에서 Push를 클릭합니다.
develop에체크한후OK를 클릭합니다.
29 /�GitHub 실습
GitFlow�설정
아이디와 비밀번호를
물어보면 GitHub 아이디와
비밀번호를 입력합니다.
30 /�GitHub 실습
GitFlow�설정
GitHub의 저장소 페이지로 이동
한 후 Settings를 클릭합니다.
Default�branch를 develop으로
선택합니다.
31 /�GitHub 실습
GitFlow�설정
Git Flow�설정을하고develop을기본브랜치로설정하세요.
- SourceTree의Git Flow�버튼을이용,초기설정
- develop�브랜치푸시
- GitHub설정페이지에서develop을기본브랜치로
32 /�GitHub 실습
파일수정과상태변경
저장소가복제된폴더로이동하여
README.md파일을수정해봅시다.
Windows
MacOS X
33 /�GitHub 실습
파일수정과상태변경
파일내용을변경하였습니다.
34 /�GitHub 실습
파일수정과상태변경
SourceTree의Working�Copy항목을보면
README.md파일이 Unstaged files에추가되었고
오른쪽에서는Diff를확인할수있습니다.
35 /�GitHub 실습
파일수정과상태변경
Unstaged files에있는 README.md파일을체크하면
Staged�files로추가됩니다.
이제커밋을위한준비가완료되었습니다.
36 /�GitHub 실습
파일수정과상태변경
그런데아차! '기술교육'을잊었네요.
파일을다시수정하였습니다.
37 /�GitHub 실습
파일수정과상태변경
README.md가Unstaged/Staged�files양쪽에모두있습니다.
38 /�GitHub 실습
파일수정과상태변경
Staged�file을수정하면 Staged�상태에서수정된 Unstaged상
태가됩니다.
커밋을위해서는다시체크하여 Staged�상태로변경하여야합
니다.
39 /�GitHub 실습
파일수정과상태변경
40 /�GitHub 실습
파일수정과상태변경
README.md파일을수정하여커밋준비를하세요.
-한번수정한후 Unstage상태가되는것을 확인하세요.
- Stage�상태로만드세요.
-다시수정하여 Stage/Unstage상태의차이를확인하세요.
-최종적으로 Stage�상태로만들어커밋준비를하세요.
41 /�GitHub 실습
Commit
42 /�GitHub 실습
Commit
develop브랜치에커밋이추가된것을확인할수있습니다.
43 /�GitHub 실습
Commit
develop브랜치에한번더 커밋을해보았습니다.
Git은원격 저장소와연결되어있지않더라도
로컬에서 몇번이고커밋을추가할수 있습니다.
이렇게로컬에 추가된커밋은푸시를통해원격저장소에
반영할수 있습니다.
44 /�GitHub 실습
Commit
Working�Copy의변경사항을커밋하세요.
-두번이상커밋해보시기바랍니다.
45 /�GitHub 실습
Push
도구모음의 Push를클릭합니다.
푸시할브랜치를
선택한 후 OK를
클릭합니다.
46 /�GitHub 실습
Push
GitHub의저장소페이지를새로고침해보면
우리가작성한 커밋이반영된것을확인할수있습니다.
47 /�GitHub 실습
Push
로컬의커밋을원격저장소로푸시하세요.
GitHub을이용한프로젝트관리
49 /�GitHub 실습
개요
각팀에서하나의저장소를만들고그곳에서
계산기 ver.�1.0을릴리즈하는과정을따라해보겠습니다.
조장을결정해주세요.
50 /�GitHub 실습
새로운규칙
직접실습합니다.
슬라이드의내용에집중합니다.
조장이행동하고조원이지켜봅니다.
조원이행동하고조장이지켜봅니다.
51 /�GitHub 실습
협업자추가
저장소는 앞서생성한조장의저장소를
사용하도록 하겠습니다.
저장소페이지의상단 Settings를클릭
왼쪽메뉴에서 Collaborators를클릭
52 /�GitHub 실습
협업자추가
조원을검색하여추가해줍니다.
(아이디로검색)
53 /�GitHub 실습
협업자추가
54 /�GitHub 실습
협업자추가
조원을협업자로추가합니다.
- Settings�- Collaborator
-아이디로검색후추가
55 /�GitHub 실습
저장소복제
각조원은조장의저장소를
복제한후 Git Flow�설정까지
완료합니다.
이때 Git Flow�초기설정은
develop과master�브랜치가
모두로컬에있어야가능합니다.
Remotes origin의master를체크아웃받습니다.
(develop은기본브랜치이기때문에복제시 체크아웃됨)
56 /�GitHub 실습
마일스톤설정
저장소페이지의상단에서 Issues�클릭
상단탭에서Milestones�클릭
오른쪽상단의 New�milestone�클릭
57 /�GitHub 실습
마일스톤설정
이름
설명
기한
58 /�GitHub 실습
마일스톤설정
마일스톤 진행상황을 확인할수있습니다.
59 /�GitHub 실습
마일스톤설정
계산기 ver.1.0마일스톤을추가합니다.
60 /�GitHub 실습
라벨설정
저장소 페이지의상단에서 Issues�클릭
탭에서 Labels�클릭
61 /�GitHub 실습
라벨설정
62 /�GitHub 실습
라벨설정
New�label을클릭
라벨이름과색상을지정가능합니다.
63 /�GitHub 실습
라벨설정
64 /�GitHub 실습
라벨설정
라벨의구성을자유롭게변경하세요.
65 /�GitHub 실습
이슈생성
저장소페이지의상단에서 Issues�클릭
오른쪽상단의 New�issue�클릭
66 /�GitHub 실습
이슈생성
67 /�GitHub 실습
이슈생성
68 /�GitHub 실습
이슈생성
69 /�GitHub 실습
이슈생성
70 /�GitHub 실습
이슈생성
71 /�GitHub 실습
이슈생성
72 /�GitHub 실습
이슈논의
하단의댓글입력창을통해댓글을남길수있습니다.
73 /�GitHub 실습
이슈논의
74 /�GitHub 실습
이슈논의
75 /�GitHub 실습
이슈
앞장과같이이슈를등록하고댓글을통해의견을나누어봅니
다.
-이슈에담당자,라벨,마일스톤등을지정해보세요.
-댓글을통해의견을교환하세요.
76 /�GitHub 실습
기능개발
#1스켈레톤작성 이슈를개발해봅시다.
#1�이슈담당자는
이슈의라벨을적절하게변경합니다.
77 /�GitHub 실습
기능개발
도구모음에서Git Flow를클릭합니다.
Start�New�Feature를클릭합니다.
78 /�GitHub 실습
기능개발
Feature�Name은
이슈번호와
간략한설명으로
정합니다.
79 /�GitHub 실습
기능개발
feature/iss1-create-skeleton�브랜치가
생성되고 checkout된것을
확인할수있습니다.
80 /�GitHub 실습
기능개발
main.c를생성합니다.
81 /�GitHub 실습
기능개발
'fixed�#1'을포함하여커밋로그를작성하고 Commit합니다.
82 /�GitHub 실습
기능개발
푸시할브랜치를
선택한후
푸시합니다.
83 /�GitHub 실습
기능개발
GitHub의#1�이슈 페이지를확인하면
b2ade71�커밋이 #1�이슈와연결된것을
확인할수있습니다.
84 /�GitHub 실습
기능개발
fixed�라고적어주었기때문에 b2ade71�커밋이
기본브랜치인 develop�브랜치와머지될때
이슈가자동으로닫힙니다.
85 /�GitHub 실습
기능개발
#1�이슈를해결하세요.
- Git Flow�버튼을통해새 Feature를시작합니다.
-실습파일의main-1.c�파일내용을복사해서main.c로저장
합니다.
-커밋로그에 'fixed�#1'을포함하여커밋합니다.
- Feature�브랜치를푸시합니다.
86 /�GitHub 실습
Pull�Request
기능개발이완료된후에는
Git Flow의 Finish�Feature를
이용하여기능브랜치를
develop으로머지할수도
있습니다.
87 /�GitHub 실습
Pull�Request
하지만이렇게하지않고 GitHub에서Pull�Request를생성하는
방법을알아봅니다.�이런방식을 GitHub�Flow라고부릅니다.
본교육에서는 Git Flow와 GitHub�Flow를조합한workflow를
안내합니다.
88 /�GitHub 실습
Pull�Request
저장소페이지의상단 Pull�Requests�클릭
오른쪽상단의 New�pull�request�클릭
89 /�GitHub 실습
Pull�Request
compare에서
base로머지하는
풀리퀘스트를만듭니다.
우리는 feature/iss1-create-skeleton을develop으로
머지할것이기 때문에 그림과같이선택합니다.
90 /�GitHub 실습
Pull�Request
91 /�GitHub 실습
Pull�Request
92 /�GitHub 실습
Pull�Request
93 /�GitHub 실습
Pull�Request
94 /�GitHub 실습
Pull�Request
95 /�GitHub 실습
Pull�Request
Feature�브랜치를 develop에머지하기위한
풀리퀘스트를만드세요.
- base와 compare에각각지정하는브랜치에유의하세요.
96 /�GitHub 실습
Pull�Request
변경된라인에마우스오버하면
+�아이콘이나타납니다.
97 /�GitHub 실습
Pull�Request
해당라인에댓글을추가할수있습니다.
98 /�GitHub 실습
Pull�Request
99 /�GitHub 실습
Pull�Request
100 /�GitHub 실습
Pull�Request
의견을받았기때문에해당부분에대한수정을시작합니다.
(혹은댓글을통해토의합니다)
101 /�GitHub 실습
Pull�Request
첫번째의견에대한수정사항을커밋합니다.
되도록커밋은작은변경사항들을자주 하도록합니다.
102 /�GitHub 실습
Pull�Request
두번째의견에 대해서도 변경후커밋합니다.
103 /�GitHub 실습
Pull�Request
다시푸시합니다.
104 /�GitHub 실습
Pull�Request
다시 PR�페이지를 확인하면 이전의댓글은 X�표시되고
푸시한커밋들이 반영된 것을확인할수있습니다.
105 /�GitHub 실습
Pull�Request
이과정을 코드가머지할 수 있는수준이될때까지
계속반복합니다.
106 /�GitHub 실습
Pull�Request
머지를해도되겠다판단이 되면
:+1:로엄지표시를입력합니다.
(각팀의나름의싸인을 이용하세요)
107 /�GitHub 실습
Pull�Request
나름의룰을 정하여머지 시점을결정합니다.
예)�모두의 엄지,�과반수의 엄지등등
108 /�GitHub 실습
Pull�Request
풀리퀘스트의 diff기능을이용하여코드리뷰를하고
리뷰의견을해결한후머지 결정까지진행해보세요.
-조원은 diff화면에서특정라인에대한 의견을작성
-조장은전달받은의견을토대로코드를수정
- main-2.c�파일을복사해main.c내용을변경한후커밋
- main-3.c�파일을복사해main.c내용을변경한후커밋
-조원은최종적으로머지해도좋을지판단
109 /�GitHub 실습
Pull�Request
GitHub�상에서 바로 머지를 할수있습니다.
110 /�GitHub 실습
Pull�Request
GitHub�상에서 바로 머지를 할수있습니다.
111 /�GitHub 실습
Pull�Request
GitHub�상에서 바로 머지를 할수있습니다.
112 /�GitHub 실습
Pull�Request
GitHub�상에서 바로 머지를 할수있습니다.
113 /�GitHub 실습
Pull�Request
내로컬 저장소에는아직원격저장소과
로컬저장소에브랜치가남아있는것으로
나옵니다.
114 /�GitHub 실습
Pull�Request
도구모음에서 Fetch를클릭합니다.
Prune�...�remote(s)에체크한후
OK를클릭합니다.
원격저장소의 브랜치정보가사라졌습니다.
115 /�GitHub 실습
Pull�Request
develop으로체크아웃합니다.
머지된브랜치를삭제합니다.
116 /�GitHub 실습
Pull�Request
풀리퀘스트 페이지의머지버튼을이용하여
feature�브래치를 develop브랜치로머지하고
로컬의 feature�브랜치 정보를정리합니다.
(조원은 develop의변경사항을 pull�받습니다)
117 /�GitHub 실습
Pull�Request
이제각자맡은이슈를앞의 안내에따라개발하고
PR을생성하여리뷰 받고머지하세요.
118 /�GitHub 실습
충돌해결
충돌해결방법을알아보기위해일부러충돌을만들어봅시다.
동일한커밋으로부터조장은 conflict1로 feature�브랜치를생
성하고조원은 conflict2로 feature브랜치를생성했다고가정
해봅시다.
119 /�GitHub 실습
충돌해결
feature/confilict1
feature/confilict2
120 /�GitHub 실습
충돌해결
두 feature�브랜치의풀리퀘스트를생성할때는
두풀리퀘스트가모두머지가능하게표시될것입니다.
하지만, conflict1의풀리퀘스트를먼저머지한후에
conflict2의PR�페이지를보면자동머지가안 되는것을
확인할수있습니다.
121 /�GitHub 실습
충돌해결
conflict2의담당자는 develop으로체크아웃한후 풀받습니다.
다시 feature/conflict2로
체크아웃한후 develop을
머지합니다.
122 /�GitHub 실습
충돌해결
당연히충돌이납니다.
123 /�GitHub 실습
충돌해결
충돌난파일은느낌표로나타납니다.
124 /�GitHub 실습
충돌해결
충돌난영역은
<<<<<<<�HEAD
....
=======
....
>>>>>>>�[머지한 브랜치]
로표시됩니다.
내가 수정한내용
머지한브랜치에서수정한내용
125 /�GitHub 실습
충돌해결
feature/confilict1
feature/confilict2
126 /�GitHub 실습
충돌해결
충돌표시를지우고적절하게두변경사항을반영하여
수정합니다.
127 /�GitHub 실습
충돌해결
옵션에서머지툴설정했을시
외부머지툴을사용하여도됩니다
128 /�GitHub 실습
충돌해결
충돌을해결한파일은충돌해결로표시합니다.
(stage로추가하는것과동일)
129 /�GitHub 실습
충돌해결
모든충돌을해결했으면커밋/푸시
130 /�GitHub 실습
충돌해결
다시 PR�페이지를확인하면자동머지가가능합니다.
131 /�GitHub 실습
충돌해결
충돌상황을발생시켜충돌을해결하는법을실습해봅시다.
-시작하기전모두 develop을pull
-조장은 conflict1�feature�브랜치를생성
-조원은 conflict2�feature�브랜치를생성
-앞서봤던대로 코드를수정하고커밋/푸시
-조장이먼저 conflict1에대한풀리퀘스트를머지
-조원의 conflict2�풀리퀘스트가충돌난것을확인
-조원은충돌을해결한후다시머지
132 /�GitHub 실습
rebase활용
머지만을사용하여프로젝트를진행할경우
이런커밋그래프를만나게 될수도...
프로젝트의히스토리를보기굉장히어렵습니다.
133 /�GitHub 실습
rebase활용
기본원칙
- Feature�브랜치를푸시하기전 develop에 rebase
-머지전 develop에내 feature�브랜치가가지친 후의커밋이
존재한다면다시 develop에 rebase
- develop�머지시에다른 사람들은잠시 develop을놔두기
134 /�GitHub 실습
rebase활용
충돌상황이있는예제를 통해 rebase실습을해봅시다.
조장은 conflict3�브랜치를,조원은 conflict4�브랜치를생성합니
다.
135 /�GitHub 실습
rebase활용
조장은위코드와같이 변경한후 커밋합니다.
136 /�GitHub 실습
rebase활용
이제풀리퀘스트를위해 feature�브랜치를 push�해야합니다.
이때꼭 develop을pull�받아 develop에변경된커밋이없는지
확인합니다.
위그림과같이기능을 개발하는동안다른커밋이생겼다면
feature�브랜치를 develop에 rebase합니다.
137 /�GitHub 실습
rebase활용
Feature�브랜치를체크아웃 받은상태에서
develop�브랜치위에서 컨텍스트메뉴를불러와
Rebase�current�changes�on�develop을클릭합니다.
138 /�GitHub 실습
rebase활용
확인창에서 OK를클릭합니다.
충돌이없다면그대로진행이됩
니다.
139 /�GitHub 실습
rebase활용
feature�브랜치가 develop의최신커밋으로부터나온것으로변
경된것을확인할수 있습니다.
rebase�전
rebase�후
140 /�GitHub 실습
rebase활용
드디어 push할수있게 되었습니다.
Feature�브랜치를 push하고풀리퀘스트를만듭니다.
141 /�GitHub 실습
rebase활용
동시에조원은아래와같이 코드를수정하고커밋한후
develop의변경사항을 확인하여 rebase가필요하다면
rebase한후역시 push하고풀리퀘스트를만듭니다.
142 /�GitHub 실습
rebase활용
이제 feature/conflict3�브랜치가리뷰가완료되고
조장이머지한다고생각해보겠습니다.
143 /�GitHub 실습
rebase활용
하지만그전에다시 develop�브랜치에새로운커밋이존재하는
지확인해봅니다.
머지할브랜치가 develop의마지막커밋으로부터나와있기때
문에이번에는 rebase를할필요가없겠습니다.
144 /�GitHub 실습
rebase활용
풀리퀘스트페이지에서머지를클릭하여머지합니다.
결과는아래와같습니다.
145 /�GitHub 실습
rebase활용
이제 conflict4도리뷰가완료되어조원이머지를한다고생각해
봅시다.충돌이났기때문에 자동머지가되지않습니다.그리고
develop브랜치에도새로운 커밋(conflict3을머지하는)이생겼
기때문에 rebase가필요합니다.
146 /�GitHub 실습
rebase활용
머지하기전 99c8594�커밋의부모커밋을 5240aa1로변경하기
위해 rebase합니다.
147 /�GitHub 실습
rebase활용
conflict4�브랜치가체크아웃된 상태에서 develop으로 rebase합
니다.
148 /�GitHub 실습
rebase활용
rebase�진행중 충돌이 일어납니다.
149 /�GitHub 실습
rebase활용
충돌을해결한후 stage�상태로변경합니다.
150 /�GitHub 실습
rebase활용
그다음 Actions메뉴에서
Continue�Rebase를클릭합니다.
151 /�GitHub 실습
rebase활용
feature/conflict4브랜치가 develop의최신커밋으로부터
나오는새로운 커밋을 만들어낸것을확인할수있습니다.
로컬의 feature�브랜치는 rebase가되었지만 remote(origin)의
feature�브랜치는 여전히 존재하는것도확인할수있습니다.
152 /�GitHub 실습
rebase활용
이제 feature�브랜치를 다시 push해줍니다.
하지만오류가 발생하며 push가되지않습니다.
remote(origin)에이미 push된커밋때문입니다.
153 /�GitHub 실습
rebase활용
이미 remote에push된브랜치를 rebase하여
다시 push하기위해서는 터미널로직접명령어를입력해
주어야합니다.
$�git push�origin�feature/conflict4�--force
154 /�GitHub 실습
rebase활용
이제다시 풀리퀘스트 페이지에서머지를하면 아래와같이 깔
끔하게정리된 그래프를 확인할수있습니다.
155 /�GitHub 실습
rebase활용
rebase를사용하는 flow를실습해봅니다.
-조장은 conflict3�feature�브랜치를생성
-조원은 conflict4�feature�브랜치를생성
-각자코드를수정한후 커밋
- push하기전 develop을확인하여필요하다면 rebase
-풀리퀘스트를생성
-리뷰완료후 머지시에도 develop을확인하여필요하다면
rebase
156 /�GitHub 실습
rebase활용
rebase는이미생성된 커밋을고치기때문에 push된커밋을
rebase하는것을권장하지 않는다고되어 있습니다.왜냐하면
이미다른 사람이 pull�받은커밋을다시고치면엄청난혼란을
가져올수 있기때문입니다.하지만앞서예제에서 feature�브
랜치는담당자만이 사용하고있다는가정하에 이미 push된브
랜치를 rebase하고있습니다.
157 /�GitHub 실습
rebase활용
rebase는 git사용법중에서도 고급사용법이므로팀에서이제
막 git을도입해 사용하고 있다면모든구성원이 git에익숙해진
후에 rebase를활용한 flow를도입하시길권장드립니다.
158 /�GitHub 실습
릴리즈생성
릴리즈준비가 되면 Git Flow로릴리즈브랜치를생성합니다.
159 /�GitHub 실습
릴리즈생성
Git Flow에서 Start�New�Release를클릭
160 /�GitHub 실습
릴리즈생성
적당한 이름으로
릴리즈 브랜치를
생성합니다.
161 /�GitHub 실습
릴리즈생성
이릴리즈브랜치를이용하여최종테스트를거치며
릴리즈할수있는지검증합니다.
162 /�GitHub 실습
릴리즈생성
릴리즈브랜치에대한검증이완료되었다면
Git Flow의 Finish�Release를클릭합니다.
163 /�GitHub 실습
릴리즈생성
릴리즈를완료하면
릴리즈브랜치가
develop과master에
머지되고 tag가생성됩니다.
164 /�GitHub 실습
릴리즈생성
그후
develop과
master,�tag까지
푸시해줍니다.
165 /�GitHub 실습
릴리즈생성
GitHub의저장소메인페이지를확인하면 release가생성된것
을확인할수 있습니다.
166 /�GitHub 실습
릴리즈생성
릴리즈페이지에서 [Tags]�탭을선택한후 지금생성한릴리즈
태그의 [Add�release�notes]를클릭합니다.
167 /�GitHub 실습
릴리즈생성 태그
이름
설명
바이너리파일등을첨부가능
168 /�GitHub 실습
릴리즈생성
169 /�GitHub 실습
릴리즈생성
릴리즈를 생성해봅니다.
-릴리즈브랜치를 생성
-릴리즈를 완료
-결과를푸시
- GitHub페이지에서태그의릴리즈노트작성
170 /�GitHub 실습
정리
- GitHub과 SourceTree를이용한Git기본사용법
-저장소생성,�복제,�파일상태변경,�커밋,�푸시
- GitHub을이용한프로젝트관리
-협업자설정,�마일스톤/라벨/이슈관리
-기능의개발,�GitHub�flow(Pull�Request)
- rebase를활용한로그그래프관리
-릴리즈생성
Thank�You.