git tutorial

116
Git 사용법 세미나 바라미 19기 남상규 [email protected] sanggyu.nam kyukyukyu

Upload: sanggyu-nam

Post on 14-Aug-2015

202 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Git Tutorial

Git  사용법  세미나바라미  19기  남상규

!  [email protected]  "  sanggyu.nam  #  kyukyukyu

Page 2: Git Tutorial

청자를  고려한  말하기컴퓨터  외  전공자  분이  많으니까...

Source:  Meme  Center

Page 3: Git Tutorial

Git이  무엇인가

Page 4: Git Tutorial

Source:  Startup  Kit

Page 5: Git Tutorial
Page 6: Git Tutorial

프로젝트_최종본_진짜마지막.zip  식의  조악한  버전  관리

Page 7: Git Tutorial

프로젝트_최종본_진짜마지막.zip  식의  조악한  버전  관리

협업  할  때  다른  사람의  작업  내역을  날려버리는  경우

Page 8: Git Tutorial

프로젝트_최종본_진짜마지막.zip  식의  조악한  버전  관리

협업  할  때  다른  사람의  작업  내역을  날려버리는  경우

이런  참사!  더  이상은  Naver...

Page 9: Git Tutorial
Page 10: Git Tutorial
Page 11: Git Tutorial

DVCS  (Distributed  Version  Control  System:  분산  버전  관리  시스템)

Page 12: Git Tutorial

DVCS  (Distributed  Version  Control  System:  분산  버전  관리  시스템)

요즘  대세:  GitHub,  BitBucket

Page 13: Git Tutorial

DVCS  (Distributed  Version  Control  System:  분산  버전  관리  시스템)

요즘  대세:  GitHub,  BitBucket

사실  발표자가  이거  말고  쓸  줄  아는  게  없음

Page 14: Git Tutorial
Page 15: Git Tutorial

Git을  설정해  봅시다!

Page 16: Git Tutorial
Page 17: Git Tutorial

원래  Git은  shell에서  써야  제맛이지만

Page 18: Git Tutorial

원래  Git은  shell에서  써야  제맛이지만

청자를  고려하여  SourceTree  on  Windows  사용

Page 19: Git Tutorial

원래  Git은  shell에서  써야  제맛이지만

청자를  고려하여  SourceTree  on  Windows  사용

설치부터  들어갈게요

Page 20: Git Tutorial

https://www.sourcetreeapp.com

Page 21: Git Tutorial

체크  해야  사용  가능

Page 22: Git Tutorial

SourceTree가  지원하는  Git과  Mercurial을  다운로드  &  설치

Page 23: Git Tutorial

실행  파일  같이  보통  버전  관리  잘  안  하는  파일들을관리하지  않는  옵션을  기본으로  설정할  것인지  물어  봄

Page 24: Git Tutorial

Git/Mercurial  호스팅  서비스와의  연동  설정

Page 25: Git Tutorial

https://github.com

Page 26: Git Tutorial

SSH  키  설정해둘  거냐고  묻는  창

Page 27: Git Tutorial

SSH  키  설정해둘  거냐고  묻는  창

그런  거  들어  본  적  없으면  일단  이거  클릭

Page 28: Git Tutorial

여기서부터잠깐만  귀찮아요

Page 29: Git Tutorial

인증키를  만듭시다

Page 30: Git Tutorial
Page 31: Git Tutorial

인증키  생성의  Randomness를올리기  위해  (드립  아님)  마우스를  쉐킷쉐킷

Page 32: Git Tutorial

인증키가  생성되었습니다

Page 33: Git Tutorial

인증키를  보호하는  암호를  설정하고  인증키를  저장

1.  암호  설정

2.  인증키  저장

복사해두기

Page 34: Git Tutorial
Page 35: Git Tutorial
Page 36: Git Tutorial
Page 37: Git Tutorial

복사해둔  거  붙여넣기

Page 38: Git Tutorial
Page 39: Git Tutorial

인증키  사용을  위해  Pageant  실행

Page 40: Git Tutorial

[Add  Key]  눌러서  아까  저장한  private  key  열기

Page 41: Git Tutorial

암호  입력하고  [OK]  누르면 Pageant가  켜진  동안  해당  인증키를  사용하여  통신

Page 42: Git Tutorial

설정의  마지막  단계!

Page 43: Git Tutorial

이름,  이메일  입력

Page 44: Git Tutorial

귀찮은  거  끝!

Page 45: Git Tutorial

(드디어)  사용해  봅시다

Page 46: Git Tutorial

저장소  생성  &  커밋

Page 47: Git Tutorial

저장소를  만듭시다

저장소가  ‘될’  경로

Page 48: Git Tutorial

이제  막  만들었으니  든  게  없겠죠

Page 49: Git Tutorial

파일을  만들고  (좀  기다리면)  이렇게  Unstaged  영역에  뜨는데,[Stage  hunk]를  누르거나  파일에  체크를  하면

Page 50: Git Tutorial

이렇게  Staged  영역(index)으로  이동합니다

Page 51: Git Tutorial

Source:  누구나  쉽게  이해할  수  있는  Git  입문

Page 52: Git Tutorial

아래의  텍스트  상자에  커밋  메시지를  작성하고  커밋을  하면

Page 53: Git Tutorial

커밋  로그에서  확인할  수  있습니다

Page 54: Git Tutorial

파일을  수정하고  나서  Git  저장소  상태를  확인하면파일의  변경사항이  나타나는데

Page 55: Git Tutorial

이렇게  변경사항  중  일부를  선택하고[Stage  lines]를  누르면

Page 56: Git Tutorial

해당  내용만  Staged  영역(index)에  올릴  수  있습니다

Page 57: Git Tutorial

아까와  마찬가지로  커밋  메시지를  작성하고  커밋!

Page 58: Git Tutorial

잘  들어가네요

Page 59: Git Tutorial

잘  들어가네요

변경된  파일이  있는데  커밋으로  안  올라가서  나타남

Page 60: Git Tutorial

가지  따기  (branching)

Page 61: Git Tutorial

Branch  버튼을  눌러  보시면

Page 62: Git Tutorial

브랜치  만드는  창이  나타납니다

체크하셔야  새로  만든  브랜치로바로  이동합니다

Page 63: Git Tutorial

앞에서  설정한  대로  새로  만든  브랜치도가장  마지막  커밋을  가리킵니다

현재  브랜치는이와  같이  다르게  표시됩니다

Page 64: Git Tutorial

작업을  열나게  하고

Page 65: Git Tutorial

아까  배운  대로  커밋을  쌓아나가면  되지요

Page 66: Git Tutorial

[Checkout]  버튼을  눌러  다른  브랜치로  갈아타  봅시다

Page 67: Git Tutorial

창이  열리면  갈아탈  대상을  선택할  수  있습니다

여기서  브랜치를  쉽게  선택할  수  있어요

Page 68: Git Tutorial

파일  내용이  master  브랜치가가리키는  상태로  돌아갔네요

Page 69: Git Tutorial

내친김에  브랜치  하나만  더  파  봅시다

Page 70: Git Tutorial

새  브랜치에서  커밋을  쌓아나가면

Page 71: Git Tutorial

커밋  로그가  이렇게  나타나네요

Page 72: Git Tutorial

일단  다시  master  브랜치로  체크아웃

Page 73: Git Tutorial

합치기  (merging)

Page 74: Git Tutorial

[Merge]  버튼을  누르시면

Page 75: Git Tutorial

현재  브랜치와  작업  내역을  합치기  위한  창이  나타납니다

stack  브랜치와  합쳐  볼게요

Page 76: Git Tutorial

master  브랜치가  stack  브랜치와같은  커밋을  가리키게  되었습니다

이번엔  heap  브랜치와  합쳐  볼게요

Page 77: Git Tutorial

충돌이  발생하였군요충돌을  해결해야  합치기  작업이  끝납니다

Page 78: Git Tutorial

충돌이  발생하면 두  부모의  작업  내역  모두가  해당  파일에  기록됩니다

Page 79: Git Tutorial

SourceTree에서는  내  (여기선  master)  변경사항들혹은  합치기  대상의  (여기선  heap)  변경사항들  중  하나로  퉁칠  수도

Page 80: Git Tutorial

근데  충돌이  항상  그렇게  깔끔한  건  아니니까보통은  직접  파일  수정해서  해결하고  Git에게  말해줍니다

Page 81: Git Tutorial

충돌이  발생한  경우엔  머지  커밋을  반드시  작성하게  됩니다

Page 82: Git Tutorial

충돌이  발생한  경우엔  머지  커밋을  반드시  작성하게  됩니다아깐  머지  커밋  없었는데?  충돌이  없어  fast-forward가  일어남!

Page 83: Git Tutorial

파일  추가/제거  &되돌리기

Page 84: Git Tutorial

SourceTree에서는  그냥  체크상자를  체크하면  되지만[Add]  버튼을  눌러도  됩니다

Page 85: Git Tutorial

Staging  영역(index)에  올라온  상태에서  커밋  하면이  커밋에는  파일이  추가된  변경사항이  기록됩니다

Page 86: Git Tutorial

파일을  제거하려면  일단  저장소  내의  모든  파일을  표시합니다

Page 87: Git Tutorial

제거할  파일을  선택하고  [Remove]  버튼을  클릭하면

Page 88: Git Tutorial

Staging  영역(index)에  파일  삭제  내역이  올라갑니다

Page 89: Git Tutorial

어  근데  뭔가  실수한  거  같아요!마지막  커밋  상태로  복구하기  위해  [Discard]  버튼을  누릅니다

Page 90: Git Tutorial

‘Reset  All’  탭에  들어간  다음  [Reset  All]  버튼을  누르면  됩니다

Page 91: Git Tutorial

음..  근데  실수가  아니었네요.다시  지우는  김에  저장소에서  파일을  제거하는

다른  방법을  살펴  볼게요.  일단  파일을  직접  지우고...

Page 92: Git Tutorial

SourceTree에서  파일을  체크하여 staging  영역으로  올리면  됩니다.

Page 93: Git Tutorial

어떤  방법으로든  저장소에서  파일을  제거했으면커밋을  통해  파일이  제거됐다는  변경  내역을  기록합니다

Page 94: Git Tutorial

원격  저장소  사용하기

Page 95: Git Tutorial

일단  GitHub에  새로운  저장소를  만들어야  합니다

Page 96: Git Tutorial

이름,  설명을  마음대로  설정하고[Create  repository]를  클릭합니다

근데  이  녀석은  체크하면  안  돼요여러분  컴퓨터에  만든  로컬  저장소를  올릴  거니까

Page 97: Git Tutorial

원격  저장소가  생겼습니다로컬  저장소와  연결하기  위해  일단  원격  저장소  주소를  복사합니다

우린  SSH  프로토콜을  사용하니까  이걸  선택

Page 98: Git Tutorial

여길  들어가면

Page 99: Git Tutorial

창이  하나  뜨는데,여기에  아까  복사해둔  원격  저장소  정보를  입력합니다

이거  체크해두세요웬만하면  다른  원격  저장소를  쓸  일이  없어요

여기에  GitHub  사용자  이름을  입력하세요

Page 100: Git Tutorial

등록이  잘  되네요

Page 101: Git Tutorial

로컬  저장소의  내용을  원격  저장소로  올리려면[Push]  버튼을  누릅니다

Page 102: Git Tutorial

브랜치  단위로  내용을  올릴  수  있습니다원격  저장소에  올릴  브랜치를  선택하세요

Page 103: Git Tutorial

그러면  이런  경고창이  뜹니다GitHub에  처음  접속해서  그런  거니까  걱정  마시고  [Yes]를  누르세요

Page 104: Git Tutorial

origin/master  브랜치와master  브랜치가  같은  커밋을  가리킵니다

Page 105: Git Tutorial

GitHub에  있는  여러분의  저장소에  다시  들어가면이렇게  동기화된  저장소의  내용이  나타납니다

Page 106: Git Tutorial

SourceTree에서처럼  커밋  로그도  확인할  수  있고요

Page 107: Git Tutorial

각  커밋의  내용도  확인할  수  있네요

Page 108: Git Tutorial

특정  커밋에서의  저장소의  상태도  확인할  수  있습니다

Page 109: Git Tutorial

이번에는  다른  저장소의  내용을  받아와  보죠일단  SSH  프로토콜을  사용하는  저장소  주소를  확인합니다

SSH를  선택하세요

Page 110: Git Tutorial

저장소  주소를  복사해둡니다

Page 111: Git Tutorial

SourceTree에서  새로운  저장소를  추가합니다

1.  이거  눌러서  창을  띄우고

2.  복사해둔  주소를  붙여넣고

3.  저장소의  내용이  들어갈  경로를  선택합니다

Page 112: Git Tutorial

잘  받아지네요

Page 113: Git Tutorial

저장소의  커밋  로그도  확인할  수  있고요

Page 114: Git Tutorial

일단  여기까지!

Page 115: Git Tutorial

tag

rebase

rebase  -i

cherry-pick

reflog

Page 116: Git Tutorial

고맙습니다