빠르게 Git 사용 해 보기 with Gitkraken

2017. 5. 9. 16:55공부 자료

빠르게 Git 사용 해 보기

Git - Hub 을 사용 해야 한다는 말은 귀가 따갑도록 들어서, 혹은 여러 가지 이유로 다들 필요성을 인지하고 있을 것 입니다. ( 필자는 Open Source에 대해 관심이 생겨서 Git-hub 을 찾아보게 되었습니다. )

 

사실 1년쯤 전에 학교에서 하는 Git 관련 세미나에도 참석 했었는데, 그때 잘 배웠으면 좋겠지만... 

 

그 때 당시 실습으로 Git 을 GUI 도구를 이용해 사용 해 봤는데, 사용하는 것에만 치중해서 자료를 남기지 못해 다시 하려니 힘들었습니다.

 

언젠가 한 번은 Git 관련 복습을 해 보아야 겠다고 생각만 하다가 휴일을 맞이해서 한 번 진행해 보았습니다.

 

쉽게 따라하면서 진행 해 볼 수 있도록 글을 구성하였고, Git Kraken GUI Tool 을 사용하였습니다.

 

 

 

그런데 Git Hub이 뭔가요?

Git Hub이 무엇인지 모르는 사람들도 있을 것 입니다. 먼저 링크는 다음과 같습니다. 

 

Git   Git Hub

 

Git 은 Open Source를 빠르고 효과적으로 버전을 관리하고, 여러 사람에 의해 코드를 공유 / 관리하기 위해 만들어진 시스템입니다. ( 거기에 무료입니다! )

 

프로젝트의 크기에 관계 없이 사용 가능하며, 프로젝트가 커지면 커질수록 프로젝트 관리가 쉬워지는 특징이 있습니다.

 

배우기 쉽고 ( 라지만 처음 하는 사람에게는 어렵습니다 ㅠㅠ ) 매우 많은 사람들에 의해 쓰이고 있으므로 소통이 편한 장점이 있겠습니다.

 

이러니 저러니 해도 역시 Git의 장점은 코드의 공유와 협업, 버전 관리 시스템이 Git의 큰 장점이라고 할 수 있겠습니다.

 

Git-Hub은 그런 Git의 저장소를 의미하는 것이고, Git 은 그러한 Git-Hub에 있는 중심 기능을 의미합니다.

 

몇 가지 단어를 설명하고 가겠습니다.

 

  • Command Line : Git 은 git init 과 같은 Git Bash 프로그램 혹은 커맨드 입력창을 통해 제어 할 수 있습니다. Linux나 OS X 같은 것을 사용 해 보았으면 익숙한 검은바탕 흰 글씨의 명령어입니다.

 

  • Repository : 저장소. Project 가 거주 가능한 Directory 등의 저장 공간. repo 라고도 말합니다.

 

  • Commit : 변경 사항이 있을 때, 그 변경 사항들을 모두 혹은 선택적으로 저장하는 것을 의미합니다. Commit을 할 때 마다 Check Point를 가지고 그 부분으로 다시 돌아갈 수 있게 해 주며, 이는 Git의 버전 관리의 핵심 기능이라 할 수 있습니다.

 

  • Branch : 어떤 기능을 위해, 혹은 나만의 작업을 위해 원래의 프로젝트에 영향을 주지 않는 또 하나의 프로젝트를 만드는 것을 의미합니다. 이러한 Branch 들은 Pull Request를 통해 서로 합치고, 또한 Branch를 다시 생성하여 갈라질 수 있습니다.

 

  • Push / Pull : Git-Hub 저장소에 Push 는 현재 내가 사용하는 Local 저장소의 변경 사항을 등록 하는 것이고, Pull 은 현재 내가 사용하는 Local 저장소를 Git-hub 저장소에 저장 된 것으로 갱신하겠다는 의미입니다.

 

  • Pull Request : Branch 를 서로 합치는, 혹은 중대한 변경 사항에 대해서 Git-hub 저장소에 허가 메세지를 보내는 것을 의미합니다.

 

  • Merge : "합치다." 라는 의미로, 어떤 두 Branch 를 합쳐 하나의 Branch 로 만드는 것을 의미합니다. 합쳐져 사라지는 Branch 도 있고, 합쳐질 때 살아남는 Branch 도 있습니다.

 

 

 

사용 방식 기본? : Git Kraken으로 사용하기.

 

기본적으로 커맨드 라인을 이용해서 사용하는 방식GUI Tool 을 사용하는 방식이 있습니다.

 

이런 커맨드 라인을 이용하게 되면 추가 설치 없이 간편하게 이용 가능한 장점이 있긴 하지만, 처음부터 사용하기에는 어려움이 있었습니다.

또한 사람들은 커맨드 라인에 대한 본능적인(?) 공포심이 있어서 팀플에 이렇게 사용하자고 하면 활발한 활동이 어려울 것으로 예상됩니다.

 

따라서 저는 GUI Tool 을 이용하는 방식을 사용했습니다.

 

그러나 GUI Tool 또한 사용에 어려움이 있을 수 있습니다. 

 

Git 사용법 뿐만 아니라, Git에 대한 이해, 또한 GUI Tool에 대한 사용법까지 익혀야 하기 때문입니다.

 

그러므로 하나하나 차근차근 따라 해 보도록 합시다.

 

먼저 Git Kraken 을 다운로드 받습니다.

 

- 들어가면 대문짝 만하게 DOWNLOAD 라고 써 있습니다. 버튼을 눌러 다운로드 받습니다.

- 설치 파일이 88 MB의 작지 않은 용량을 가지고 있으니 느긋하게 기다려 줍니다. 다운로드 후 설치합니다. 설치에 큰 어려움이 있는 것은 아니니 넘어갑니다.

 

 

- Git Kraken을 여는 모습입니다. ( 오징어가 귀엽습니다. )

 

 

 

 

 

 

 

 

- Git Kraken이 열린 모습입니다. 저는 예전에 하던 작업이 있지만, 처음 설치하였다면 아무것도 뜨지 않을 것 입니다. 혹시 무슨 창이 뜨더라도 무서워하지 말고 x 버튼을 눌러 꺼 주시면 됩니다.

 

이제 Git 을 사용하는 방법을 알아 볼 텐데, Git 을 사용하는 방법을 알아보기 전에 먼저 Git 을 사용하는 상황을 설정하여 봅시다.

저희는 일기장 프로그램을 만드는 상황을 설정 해 봅시다.

"Show, Save, Check Function 코드를 추가 / 수정 하는 상황" 을 재현 해 보았습니다.

 

1. Git Hub Main 화면을 들어갑니다. ( 만약 가입하지 않았다면 가입 후 진행하도록 합니다. )

 

2. 자신의 프로필 옆의 메뉴에서 Repository 만들기를 누릅니다. 오른쪽 위의 자신의 프로필옆의 메뉴를 눌러 New Repository 버튼을 누릅니다.

 

 

3. My Diary 라는 Repository를 만들 것 입니다. 빈칸을 채워 넣습니다. ( Description은 Repository의 설명을 의미하므로 잘 써 줍시다. ) 잘 쓴 뒤 Crete Repository 를 눌러 진행합니다.

 

- 빈칸은 Repository ( 프로젝트 ) 의 이름, Repository 의 설명을 써 넣습니다.

 

4. Repository가 생성 되었습니다. 이제 Repository의 위치를 복사합니다. 

 

 

5. 이제 Git Kraken으로 돌아온 뒤, 왼쪽 위의 폴더 모양 버튼을 눌러 Clone을 누릅니다. Clone 할 때, 저장 할 위치와 우리의 My Diary Repository 의 링크를 채워넣습니다.

 

- 우리가 복사한 링크는 URL에 붙여넣기 하고, 저장할 위치는 그 위의 칸에 입력합니다.

 

6. Clone 하게 되면 불러오겠냐는 메시지와, 이를 위한 초기화 메시지가 뜨게 됩니다. 모두 를 눌러줍니다.

 

 

7. Clone 성공 후 열려있는 모습입니다. 또한 그 폴더를 열어보면 README 파일만 있을 뿐 아무것도 없는 것을 알 수 있습니다.

 

 

8. 저희는 여기에 "master_branch" 를 만들어 기본적인 전체 프로그램의 기본 Branch 로 만들 것입니다. Branch 는 말 그대로 나무의 가지이며, "master_branch" 라는 이름을 가지는 Branch는 나무의 중심이 되는 중심 가지가 될 것입니다.

 

master 라고 써있는 Local 메뉴 오른쪽에 ... 되어있는 곳을 눌러 branch 만들기 메뉴를 누릅니다. 그 후, branch 이름을 써 넣고 확인합니다. ( 엔터를 쳐서 끝냅니다. 띄어쓰기가 안되므로 "_" 로 진행합니다. )

 

 

9. 다음과 같은 파일들을 branch 메뉴에서 "master_branch"가 눌린 것을 확인 한 뒤 복사합니다. 저는 다음과 같은 파일들을 복사하였습니다.

 

 

 

10. 이제 Commit 을 하겠습니다. 파일이 복사되어 "master_branch"에 복사 되어 변경 사항이 생겼기 때문에 이를 Git에 저장 하는 과정입니다.

먼저 Commit 의 이름을 바꿉니다.

 

 

11. Commit의 이름을 바꾸면 오른쪽 아래에 있는 Commit 창에 있는 이름도 바뀌게 됩니다. 이러한 Commit의 설명에 대해서도 써 줍니다.

 

 

12. 이러한 Commit 에 대해서 무슨 변경사항이 있었는지 체크를 해 주어야 합니다. 바뀐 것들 중에서 선택적으로 골라서 Commit 할 수도 있지만, 여기서는 모두 체크 할 것이므로 stage all change 를 누릅니다.

 

또한 이제 Commit 할 준비가 되었습니다 Commit 하여 저장합니다.

 

 

13. 저희는 Save / Show / Check 함수를 추가해야 하므로, "Save_fucntion", "Show_function", "Check_function" 의 이름을 가지는 branch 를 "master_branch"에 저장하도록 합니다.

 

 

14. "Save_function" branch를 더블 클릭 하여 선택 된 것을 확인 한 뒤, Saving Code 라는 python 코드를 추가하도록 합니다. ( Local 폴더에 추가합니다. )

 

 

15. 이때, Code가 추가되어 변경 사항이 생겼으므로 commit 할 사항이 생겼습니다. 이러한 것을 저장하도록 합시다.

 

 

16. 이제 "Show_function" branch 를 더블 클릭 하여 Local 폴더로 가 봅시다. 서로 다른 branch 이므로 저희가 방금 저장한 Saving Code 라는 파일이 없는 것을 알 수 있습니다. ( Branch 는 이렇듯 프로젝트의 구분 단위라는 것을 알 수 있습니다. )

 

 

17. 이 branch에서는 Show Code를 저장하고 ( 역시 Local 로 저장합니다. ) Commit 합니다.

 

 

18. "Check_function" branch 에서도 local 폴더에 지금까지 만든 파일이 없는 것을 확인합니다. 그 후, check code 를 만들어 저장한 뒤, Commit 을 눌러 확인하도록 합니다.

 

 

19. Branch를 보면 이러한 상태가 됩니다. 바를 양 옆으로 넓히면서 볼 수 있습니다.

 

 

20. 이를 Push 하여 각각 submit을 눌러 git-hub 저장소에 저장합니다.

"master_branch", "show_fucntion", "save_function", "check_function" 에 대해 각각 branch를 더블 클릭하여 Push 를 누릅니다.

 

- Submit 버튼을 branch 에 아무런 것도 입력하지 않고 입력 시, 아래와 같이 branch 옆에 아이콘이 떠서 push 된 것임을 알 수 있다.

 

 

21. 이제 "Show_function" branch를 더블 클릭하여 code를 수정 하여 봅시다. 수정 한 뒤 아까와는 다른 색의 commit 메시지가 떠 있는 것을 볼 수 있습니다.

이러한 것은 파일을 눌러서 변경된 사항을 볼 수 있습니다.

 

- 삭제된것은 빨간줄로, 추가된 것은 초록색 줄로 뜹니다. 이는 Git-Hub 홈페이지에서도 확인 가능합니다.

 

 

22. Commit 메시지를 채워서 저장합니다.

 

 

23. 바뀐 곳의 branch 에서는 push 하지 않은 곳은 자신의 기본 마크가 뜨지 않은 것을 알 수 있습니다. 모두 push 하여 체크합니다.

 

 

24. 이제 git-hub 사이트를 들어가 새로고침하여 봅시다. 다음과 같은 창이 뜹니다.

 

 

30. branch 를 종류별로 ( master, show, save 등.. ) 선택하여 코드를 볼 수도 있고, branch 창에 들어가 branch의 종류를 수정 할 수도 있습니다.

- Commits 를 누르면 지금까지 Commit 한 내역을 확인 가능하며, branches 를 누르면 현재 branch 목록을 볼 수 있습니다.

- Commits 를 눌러서 Commit 한 내역에 대해 댓글을 달거나 하는 것도 할 수 있으며, 무엇이 추가되었는지, 무엇이 삭제 되었는지도 알 수 있습니다.

 

 

 

25. 그러나 "master_branch"로 들어가 보면 저희가 지금까지 만든 코드들이 없는 것을 볼 수 있습니다. 저희는 "master_branch"에서 모든 것을 관리하고 싶습니다. 따라서 개발이 끝난 branch들을 merge 합시다.

 

 

26. Git Kraken 창으로 돌아옵니다. "Show_function"의 코드는 모두 수정하여 개발이 끝난 상태라고 가정하고, 이를 "master_branch"에 합쳐 봅시다. 이 때 사용하는 것이 Pull Request 입니다. Pull request 를 눌러 확인 후, 다음과 같이 써서 저장 요청을 날려 봅시다.

 

- 다음과 같은 순서로 글을 작성합니다.

- 1 : + 를 눌러서 옆의 창을 띄웁니다.

- 2, 3 : Pull Request 를 날릴 Repository를 선택합니다.

- 2, 3 : 2 는 합쳐져서 사라질 Branch, 3 은 합쳐지는 기준이 되는 Branch입니다.

- 4 : Merge의 이유 및 이름을 쓰는 곳 입니다.

- 5 : Merge의 이유에 대한 설명을 쓰는 곳 입니다.

 

 

 

 

 

 

27. 다시 Git-hub 사이트의 Pull Request 칸을 오면 요청이 와 있는 것을 알 수 있습니다. 요청을 눌러 코멘트도 달 수 있으며, 수정을 허락한다는 버튼( Merge Pull request 버튼 )을 누를 수도 있습니다. 어떤 파일도 문제를 일으키지 않으므로 쉽게 Merge 가능합니다.

 

- Merge 허락 버튼을 누르게 되면 정말 수락할 것인지 한 번 더 묻게 됩니다.

- 걱정말고 수락하여 버튼을 눌러 줍니다.

 

 

 

 

 

 

 

 

 

 

 

28. 다시 Confirm 버튼을 눌러 수정을 허가하고, 개발이 끝난 "show_function" branch를 삭제합시다.

 

 

 

29. 이제 merge되고 삭제 된 branch에 대해서 pull 을 눌러 다운로드 받아 봅시다. Master에는 Show code 가 생긴 것을 알 수 있습니다. 

삭제된 Branch 가 존재한다고 알림이 뜰 텐데 이는 우리가 진행 한 사항이므로 걱정하지 않으셔도 됩니다.

 

 

30. 그 다음, 저희의 Show Code에 수정 사항이 생겼다고 가정합시다. 

여기 ("master_branch"에서 수정이 끝난 곳)에 branch를 만들고,수정 사항을 Local 에서 수정 한 다음 commit 합니다.

 

 

31. 이를 Git-hub에 push 하여 저장 합니다.

 

 

32. 수정이 끝났으므로 다시 "master_branch"와 합쳐야 합니다. pull request 를 날립니다.

 

 

33. pull request 를 수락하고 합칩니다. 원래의 branch 는 남겨두어도 되고, 삭제하여도 좋습니다.

 

 

34. 이렇게 모든 branch에 대해서 pull request를 날리고 합쳐 봅시다. 다른 파일들도 모두 합쳐진 것을 볼 수 있습니다.

 

35. . 하지만 Commit 한 단위를 기준으로 그 자리에서 다른 Branch 를 만들어 그 버전으로 되돌아 갈 수 있는 것을 볼 수 있습니다.

- 빨간색으로 표시 된 곳은 모두 클릭해서 Branch 를 만들 수 있는 곳입니다.

 

 

 

이것 처럼 git 을 사용하면 쉽게 버전을 관리가 가능합니다. 또한 여러 사람이 이와 같이 누가 어떤 것을 수정했는지도 쉽게 볼 수 있으며, 또한 다른 버전으로 돌아가는 것이 매우 간단합니다.

 

본 글에서 나온 방식대로 따라한다면 기본적인 Git 사용을 쉽게 할 수 있습니다. 긴 글 읽느라 수고하셨습니다. 질문은 댓글이나 이메일 chj878194@naver.com 으로 해 주세요!

 

 

 

참고한 블로그

< Git 개념 잡기 1 >

< Git 개념잡기 2 >

< Git 개념잡기 3 >