Codesigner

[Git GUI] 소스트리(Sourcetree) 활용법 - (1) 본문

Git /GUI

[Git GUI] 소스트리(Sourcetree) 활용법 - (1)

eunsukimme 2019. 4. 16. 23:03

지금까지는 터미널에서 Git을 사용하는 방법에 대해서 배웠다. 이러한 방식은 빠르고 간편하지만 프로젝트의 크기가 커지고 관리해야 할 소스가 많아지면서 실수할 위험도 높아지고 프로젝트의 흐름을 파악하기 버거울 때가 있다. 그래서 GUI툴을 활용하여 Git을 사용하는 경우가 많다. 오늘 소개할 툴은 소스트리(sourcetree)라는 Git GUI툴이다. 소스트리는 간편하고 직관적인 UI를 제공해줘서 Git을 매우 쉽게 사용할 수 있게 해 준다. 그래서 Git을 다루는데 할애하는 시간을 절약하고 개발에 집중할 수 있게 도와준다. 또한 Git 레포지토리에 대한 여러 정보들을 시각화하여 프로젝트에 대한 정보를 이해하기 쉽게 전달해준다. 소스트리에 대한 소개는 이 정도로 하고, 지금부터 소스트리를 활용해 보도록 하자

 

 

 

add & commit

 

현재 로컬 레포지토리의 상태는 다음과 같다. 미리 몇 개의 커밋을 만들어 놓았다

 

<그림 1> 현재 커밋 히스토리

 

터미널을 열고, dragonFruit.txt 파일을 만든 후 소스트리의 좌측 메뉴에서 WORKSPACE - 파일상태 버튼을 누르면 다음과 같이 현재 레포지토리의 변경 사항이 나타난다

 

<그림 2> working directory의 파일 상태를 보여주는 창

 

'스테이지에 올라가지 않은 파일' 이란 의미는 현재 working directory에는 존재하지만 staging area에는 존재하지 않는 파일을 말한다. 여기서는 방금 생성한 dragonFruit.txt를 지칭한다. 모두 스테이지에 올리기 버튼은 git add . 명령과 같은 기능을 한다. '모두 스테이지에 올리기' 버튼을 누르고 적절한 커밋 메시지를 아래 보이는 텍스트 박스에 작성하면 커밋할 준비는 끝난다

 

<그림 3> staging area에 파일을 올리고 커밋 메시지를 작성한 모습

 

이제 오른쪽 아래 '커밋' 버튼을 누르면 다음과 같이 커밋 히스토리에 추가된 모습을 확인할 수 있다

 

<그림 4> dragonFruit 커밋이 추가된 커밋 히스토리

 

이것이 소스트리에서 파일의 변경사항을 커밋하는 workflow이다

 

 

 

branch

 

소스트리에서 브랜치를 생성하려면 상단에 보이는 브랜치 버튼을 클릭하면 된다. 필자의 경우는 new_branch라는 새로운 브랜치를 생성하고, '새 브랜치 체크아웃' 체크박스를 체크하여 바로 체크아웃하도록 하겠다

 

<그림 5> 새 브랜치 생성

 

새 브랜치가 생성되었다. 다시 터미널을 열고 새로운 파일을 생성하고, 소스트리에서 커밋해 보도록 하자. 필자는 donut.txt라는 파일을 생성하고 커밋하여 아래 그림과 같은 커밋 히스토리를 그려보았다

 

<그림 6> new_branch 브랜치에서 donut 커밋이 추가된 커밋 히스토리

 

그 다음, 마스터 브랜치로 checkout 하고 또 다른 커밋을 생성해보자. 이때 마스터 브랜치로 전환하려면 단순히 좌측 메뉴에서 브랜치 - master 버튼을 더블클릭하면 된다. 필자는 elderberry.txt를 생성하고 커밋하여 다음 그림과 같은 커밋 히스토리를 그려보았다

 

<그림 7> master 브랜치에서 elderberry 커밋이 추가된 커밋 히스토리

 

이제 두 브랜치가 나눠진 모습이 이쁘게 그려진 걸 확인할 수 있다. 이제 new_branch 를 다시 master 브랜치에 합칠 것인데, 이번 포스팅에서는 merge 대신 rebase를 활용하는 방법을 알아보도록 하자

 

 

 

rebase -i

 

소스트리에서 커밋을 rebase 하려면 해당 커밋의 직전 커밋을 우클리한뒤 '<커밋 해쉬>의 자식 커밋을 쌍방향 재배치' 버튼을 누르면 터미널에서와 같은 커밋 리스트 편집 창이 열린다. 여기서는 자식 커밋이 존재하지 않으므로 해당하는 커밋만을 rebase 한다

 

<그림 8> rebase -i 와 동일한 기능을 하는 버튼

 

터미널에서 pick, reword, edit 등의 명령으로 커밋을 변경 할 수 있었던 것처럼 소스트리에서도 커밋을 변경할 수 있게 해주는 창이 나타난다. 커밋 메시지를 변경할 수도 있고, 'Amend Commit?' 체크박스를 체크해서 해당 커밋의 작업 내용을 수정할 수도 있다. 필자는 이 체크박스를 체크해서 작업을 수정하도록 하겠다

 

<그림 9> 대화형 재배치 창

 

필자는 elderberry.txt 를 삭제하고 elephant.txt를 생성한 후 스테이지에 올려주었다. 그런 다음, 커밋 화면에서 커밋을 해줘야 하는데 주의해야 할 것은 git commit --amend 명령과 같이 HEAD 커밋을 수정해주는 옵션을 설정해 줘야 한다

 

<그림 10> git commit --amend 와 같은 기능을 하는 '마지막 커밋 정정' 옵션을 선택한 상태

 

그런 다음, rebase를 계속하려면 다음과 같이 제일 상단의 액션 - 재배치 계속 버튼을 클릭해주면 된다

 

<그림 11> git rebase --continue 와 같은 기능을 하는 '재배치 계속' 버튼

 

그러면 다음 그림처럼 깔끔한 선형적 히스토리가 만들어진 것을 확인할 수 있다

 

<그림 12> 깔끔하게 rebase 된 커밋 히스토리

 

 

 

Review

 

이번 포스팅에서는 소스트리를 활용하여 작업한 내용을 add 및 commit 하고 브랜치를 생성하며 커밋을 대화형으로 rebase 하는 방법들을 살펴보았다. 브랜치도 색을 다르게 해서 보여주고 각 커밋을 클릭해서 내용도 쉽게 볼 수 있어서 터미널에서 명령을 직접 실행하는 것보다 훨씬 보기 좋고 직관적이란 것을 알 수 있었다. 다음 포스팅에서는 태그를 달고, 작업한 내용을 되돌리는 등 고급 기능을 활용하는 방법을 알아보도록 하자

 

 

 

'Git > GUI' 카테고리의 다른 글

[Git GUI] 소스트리(Sourcetree) 활용법 - (2)  (0) 2019.04.17
Comments