SourceTree 를이용한 Git 사용법 1
GIT 설치방법 https://www.git-scm.com/downloads URL 로접속 à 다운로드클릭 à 설치 2 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (1) https://www.sourcetreeapp.com/ URL 로접속 à 다운로드클릭 3 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (2) Download 버튼을클릭하면자동으로아래와같은창으로넘어가면서 Install File Download 가시작 4 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (3) 소스트리를설치하기전.NET Framework 4.5 를설치단계 5 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (4) 다음과같은화면이나타나면.NET Framework 4.5 설치 6 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (5) 다음과같은화면이나타나면.NET Framework 4.5 체크후 Next 클릭이후동의함체크후설치클릭 7 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (6) Install File 을클릭하여실행하면위와같은창이나타남 8 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (7) SourceTree 를어디에 Install 할지 Path 를설정 9 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (8) Install 클릭 10 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (9) Install 진행과정 11 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (10) 붉은색박스체크 12 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (11) 라이선스에동의후계속 13 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (12) 계정이있다면 Use an existing account 버튼을선택하고계정이없을경우 Go to My Altassian 버튼을눌러서계정을만든뒤설치진행 (Atlassian account 계정부분에서설정건너뛰기클릭 ) 14 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (13) SSH 가있는경우 Yes, 없는경우 No 15 System Software & Security Lab@Myongji Univ.
SourceTree 설치방법 (14) Git 을 Gui 로이용하기위한 SourceTree 설치완료 16 System Software & Security Lab@Myongji Univ.
Sublimetext 설치 Sublimetext 설치 17 System Software & Security Lab@Myongji Univ.
저장소만들기 (init) 18
저장소만들기 (init) 바탕화면에 githtml 폴더생성 à Add repository 클릭 à Create New Repository 탭을누르고 Destination Path 에 git 폴더로경로지정 à Create 작업할파일의경로 19 System Software & Security Lab@Myongji Univ.
저장소만들기 (init) 생성된저장소 20 System Software & Security Lab@Myongji Univ.
SourceTree 를활용한 버전만들기 (commit) 21
Commit 프로젝트를진행하다보면하나의기능을완성하거나더이상수정을할 필요가없다고생각할때완성된기존의소스를다른곳에백업한다. 이것을 Git 에서는 commit 이라한다. 22 System Software & Security Lab@Myongji Univ.
Commit Git 리포지토리 ( 자신의프로젝트폴더 ) 에소스파일을작성하고생성 23 System Software & Security Lab@Myongji Univ.
Commit 파일을저장한후 SourceTree 를확인해보면다음과같이새롭게생성하거나수정한파일들이 SourceTree 의 Unstaged files 목록에표시 à 이목록에서 add 하고자하는파일을선택후 Stage Selected 클릭 Git 에최초 commit 되지않은, 현재관리하지않고있는파일의미 24 System Software & Security Lab@Myongji Univ.
Commit Unstaged files 목록에서 add 를하면파일이상단의 Staged files 로이동 (commit 하기전의임시영역에해당파일들이 commit 될준비가되었음을나타냄 ) Staged files 를커밋하기위하여맨하단에커밋메시지로 maincode.java 작성 이라고입력 à commit 버튼클릭 25 System Software & Security Lab@Myongji Univ.
Commit 하나의파일커밋로그생성 ( 커밋된파일을클릭하면파일의내용을확인할수있음초록색영역은추가되거나수정된부분을의미하며빨간색영역은예전버전에서삭제된부분을의미 ) 26 System Software & Security Lab@Myongji Univ.
SourceTree 를활용한 commit 전 수정사항취소하기 (discard) 27
discard 만약소스코드를수정을하고 commit을하기직전의상황에서수정한내용에문제점이발견되고수정한부분을되돌릴려고한다. 직접이부분을사람이되돌리고자하면하나하나원상태와똑같이지우고수정해가며이전의상태로되돌릴수있다. 이때 Git의 discard를통해자동으로수정하기전의 commit한버전으로돌아갈수있다. 28 System Software & Security Lab@Myongji Univ.
discard Sublimetest 파일로아래와같이 html 이라는파일저장 < 수정전 > 29 System Software & Security Lab@Myongji Univ.
discard 다음과같이 commit 30 System Software & Security Lab@Myongji Univ.
discard Html 파일을다음과같이수정 31 System Software & Security Lab@Myongji Univ.
discard 파일이안열릴경우 à 연결프로그램 à Sublime text 2 à 확인 32 System Software & Security Lab@Myongji Univ.
discard 파일의내용이수정되면 SourceTree 에아래와같이표시 à 여기서 commit 을하기전소스코드에문제가발생하여수정하기전으로소스코드를되돌리고싶다면 SourceTree 의상단메뉴에서 Discard 클릭 33 System Software & Security Lab@Myongji Univ.
discard Html 파일선택 à 오른쪽 Discard hunk 클릭 à 다음과같은창이뜨면 OK 34 System Software & Security Lab@Myongji Univ.
discard 이상태에서 Cancel 클릭 35 System Software & Security Lab@Myongji Univ.
discard 완료후 Uncommitted changes 가사라지고작성하던내용을확인해보면수정하기전의코드로돌아가있는것을확인할수있음 36 System Software & Security Lab@Myongji Univ.
discard 결과 37 System Software & Security Lab@Myongji Univ.
SourceTree 를활용한 commit 후 수정사항되돌리기 (reset) 38
reset 프로젝트가진행되던도중문제가발생하여이저의버전으로돌아가야 하는상황이발생된다. 이때돌아가길원하는버전으로 reset 을통해 되돌릴수있다. 39 System Software & Security Lab@Myongji Univ.
reset Abcd.txt 파일을만들고저장 à SourceTree 에서 commit ( 커밋메시지로 abcd 문구추가 ) 40 System Software & Security Lab@Myongji Univ.
reset 되돌아갈커밋로그를선택하고마우스오른쪽버튼을클릭하고 Reset current branch to this commit 클릭 41 System Software & Security Lab@Myongji Univ.
reset Reset to Commit 창은아래와같음 à 원하는모드선택후 ok 1) soft: index에올라온수정사항보존, working tree에올라온수정사항보존 2) Mixed: index에올라온수정사항취소, working tree에올라온수정사항보존 3) Hard: index에올라온수정사항취소, working tree에올라온수정사항보존 42 System Software & Security Lab@Myongji Univ.
reset Hard mode 를선택할경우, Reset 한버전이후의버전이모두삭제되며커밋로그도 해당버전의로그로수정됨 43 System Software & Security Lab@Myongji Univ.
reset Mixed mode 를선택할경우, Reset 한버전이후의버전이모두삭제되었으나 working tree 의 소스코드는유지되어 Uncommitted changes 항목이표시됨 44 System Software & Security Lab@Myongji Univ.
SourceTree 를활용한 브랜치만들기 (branch) 45
branch 프로젝트에새로운기능을추가하고자한다. 동시에기존의프로젝트에서발생하는버그와같은수정사항을고쳐야하는상황이다. 그렇다면다른방향의두가지의작업을함께진행하여야하는데만약새로운기능을추가하는작업이취소되거나수정되어기능을추가하기전의상태로돌아가야하는상황이발생할수있다. 하지만이때 Git을통해이전의상황으로돌아갈경우동시에작업하던프로젝트의수정작업역시사라지고이전상태로돌아가는문제가발생한다. 이때 Git의 branch 개념이필요하다. 46 System Software & Security Lab@Myongji Univ.
branch Sublime text 에다음과같이내용을입력 à Hello, Hi 라고저장 47 System Software & Security Lab@Myongji Univ.
branch 커밋메시지를아래와같이입력하고 commit 48 System Software & Security Lab@Myongji Univ.
branch 아래빨간박스의 (Unstaged files) 에있는파일을체크 (Stage Selected) 49 System Software & Security Lab@Myongji Univ.
branch 커밋메시지는아래와같이입력 à commit 50 System Software & Security Lab@Myongji Univ.
branch 상단메뉴의 Branch 클릭 51 System Software & Security Lab@Myongji Univ.
branch Branch 의이름을입력하고 Create Branch 클릭 52 System Software & Security Lab@Myongji Univ.
branch 다음과같이하나의리포지토리에두개의브랜치 (master, AddBranch) 가생성 AddBranch 의브랜치 53 System Software & Security Lab@Myongji Univ.
branch Master 브랜치 54 System Software & Security Lab@Myongji Univ.
branch 먼저 SourceTree 에서 AddBranch 의브랜치를선택한후내용을수정하고 commit <h2> Easy git<h2> 문구추가 55 System Software & Security Lab@Myongji Univ.
branch 다음과같이 commit 56 System Software & Security Lab@Myongji Univ.
branch AddBranch 브랜치에새로운커밋로그생성 57 System Software & Security Lab@Myongji Univ.
branch 다음으로 master 브랜치를선택 Master 브랜치선택후사라진 <h2> 구문 58 System Software & Security Lab@Myongji Univ.
branch Master 브랜치선택후다음과같이문구추가 59 System Software & Security Lab@Myongji Univ.
branch Master 브랜치에새로운커밋로그생성함 (2 개의다른브랜치에각각의커밋로그가생성 ) 60 System Software & Security Lab@Myongji Univ.
SourceTree 를활용한 브랜치합치기 (merge) 61
merge 두개의작업을하나의버전으로만들어서비스를제공하는것이다. 62 System Software & Security Lab@Myongji Univ.
Merge 충돌 Master 브랜치의상태 63 System Software & Security Lab@Myongji Univ.
Merge 충돌 AddBranch 브랜치의상태 64 System Software & Security Lab@Myongji Univ.
Merge 충돌 가져올 branch 를마우스오른쪽클릭을하고 Merge AddBranch into current branch 클릭 65 System Software & Security Lab@Myongji Univ.
Merge 충돌 Confirm Merge 팝업이뜨면 OK 를클릭 66 System Software & Security Lab@Myongji Univ.
Merge 충돌 여기서 master branch 에 AddBranch 를 merge 할경우아래와같이목록에 Uncomitted changes 가됨 충돌된결과 67 System Software & Security Lab@Myongji Univ.
Merge 충돌 충돌의원인은두개의 branch 의내용을수정할때, 동일한위치의코드를추가하거나 수정하였기때문이다. Master branch AddBranch branch 68 System Software & Security Lab@Myongji Univ.
Merge 충돌 충돌이발생한후 master branch 의내용은아래와같이두개의 branch 의내용을모두 포함하면서사용자에게코드의수정을요구한다. Merge Conflict 가발생 69 System Software & Security Lab@Myongji Univ.
Merge 충돌해결방법 이전의 merge 의결과로나온내용을다음과같이수정 70 System Software & Security Lab@Myongji Univ.
Merge 충돌해결방법 SourceTree 에서 Resolve Conflicts 항목에마우스오른쪽클릭을하고아래그림과같이 Mark Resolved 를클릭 71 System Software & Security Lab@Myongji Univ.
Merge 충돌해결방법 OK 클릭 72 System Software & Security Lab@Myongji Univ.
Merge 충돌해결방법 결과아래와같이화면이나타남 73 System Software & Security Lab@Myongji Univ.
Merge 충돌해결방법 이부분을커밋을해주게되면자동으로커밋메시지가생성 커밋을해주면 merge 됨 74 System Software & Security Lab@Myongji Univ.
Merge 충돌해결방법 충돌을해결한 master branch 75 System Software & Security Lab@Myongji Univ.
SourceTree,GitHub 를활용한 원격저장소만들기 76
원격저장소만들기 https://github.com/ 에접속하여회원가입을하고로그인 New repository 클릭 77 System Software & Security Lab@Myongji Univ.
원격저장소만들기 Repository name 란에저장소의이름을쓰고하단의 Create repository 클릭 저장소이름 78 System Software & Security Lab@Myongji Univ.
원격저장소만들기 생성된저장소에자신의컴퓨터에저장되어있는장소를복사하기위해상단의 HTTPS 항목의주소값을복사 아래 or create a new repository on the command line 이하의항목은 SourceTree와같은유저인터페이스기반이아닌텍스트기반인터페이스에서원격저장소를추가하기위해사용됨 79 System Software & Security Lab@Myongji Univ.
원격저장소만들기 SourceTree 상단메뉴의 Repository à Add Remote 클릭 80 System Software & Security Lab@Myongji Univ.
원격저장소만들기 아래의그림과같이해당로컬저장소의원격저장소를관리하는창이나오면 Add 클릭 81 System Software & Security Lab@Myongji Univ.
원격저장소만들기 앞서복사해두었던 GitHub 의원격저장소 HTTPS 항목의값을 URL / Path 란에입력 원격저장소가로컬저장소의첫번째원격저장소일경우 Default remote 체크하여기본원격저장소로 지정하고 OK 클릭 82 System Software & Security Lab@Myongji Univ.
원격저장소만들기 아래와같이원격저장소목록에연결한 origin 생성이됨 à OK 클릭 83 System Software & Security Lab@Myongji Univ.
원격저장소만들기 SourceTree 의메인화면 Remotes 항목에원격저장소 origin 이표시됨 84 System Software & Security Lab@Myongji Univ.
SourceTree,GitHub 를활용한 Push 85
push SourceTree 에서해당하는로컬저장소를선택한뒤상단메뉴의 Push 클릭 86 System Software & Security Lab@Myongji Univ.
push 다음과같이선택하고올리고자하는 branch 를선택 à Push 클릭 àusername 과 Password 를입력하라는 창이나오면자신의 GitHub 계정입력 87 System Software & Security Lab@Myongji Univ.
push Push 가완료되면아래와같이원격저장소 origin 에 Push 과정에서선택한 master 브랜치가등록됨 또한사이트에접속하여해당원격저장소를확인해보면로컬저장소의프로젝트가동기화되어있음 원격저장소 origin 에등록된 master 브랜치 88 System Software & Security Lab@Myongji Univ.
push Push 가완료되면아래와같이원격저장소 origin 에 Push 과정에서선택한 master 브랜치가등록됨 또한사이트에접속하여해당원격저장소를확인해보면로컬저장소의프로젝트가동기화되어있음 89 System Software & Security Lab@Myongji Univ.
SourceTree,GitHub 를활용한 clone 90
clone 백업해둔프로젝트를내컴퓨터로받아오거나협업을위해새로운개발자가프로젝트를로컬저장소로 받아와야하는경우가있다. 이때 clone 을통해로컬저장소에원격저장소에있는프로젝트를가져올수 있다. 91 System Software & Security Lab@Myongji Univ.
clone GitHub 에있는가져올원격저장소에접근하여 HTTPS 값을복사 92 System Software & Security Lab@Myongji Univ.
clone SourceTree 에서왼쪽하단의 Add Repository 클릭 ( 빨간색줄 ) 93 System Software & Security Lab@Myongji Univ.
clone Clone Repository 탭에서 Source Path/URL 에복사해둔 HTTPS 값을붙여넣고 Destination Path 에받아온 프로젝트를저장해둘경로를지정 à Bookmarks 에 SourceTree 에표시할저장소의이름을지정해주고 Clone 클릭 깃 깃 94 System Software & Security Lab@Myongji Univ.
clone 아래와같이 SourceTree 에원격저장소에존재하던프로젝트가생성되었으며지정해둔프로젝트생성 경로에해당하는프로젝트파일이생성됨 95 System Software & Security Lab@Myongji Univ.
clone 설정한경로에 GitHub 의원격저장소에존재하던프로젝트가저장됨 96 System Software & Security Lab@Myongji Univ.