[Git]Git Client 프로그램 Fork를 소개합니다! + Git Flow 적용하기

대부분의 프로젝트에서 Git을 이용하여 형상관리를 하는데요, 

좀 더 편안하고 알아보기 쉬운 GUI로 관리할 수 있도록 도와주는 여러 가지 Git 클라이언트 프로그램이 있습니다!

그중에서 오늘은 Fork 프로그램을 소개해보려고 합니다. 

최근까지 소스 트리를 이용했었는데.. 맥북에서 중요한 순간에 커밋을 하려고 할 때

너무 자주 Crash가 발생해서 개인적으로 사용할 때 불편함이 있었습니다. 

그래서 새로 바쁘게 된 Fork에 대해 간단하게 소개하고 Git Flow 적용 방법에 대해서도 공부해보도록 하겠습니다!

 


Fork

 

간단하게 포크에 대해서 소개해보도록 하겠습니다.

이름이 Fork여서 그런지 애플리케이션 아이콘도 귀여운 포크 모양입니다!
Fork는 앞서 소개한 것 처럼 Git을 더 편하게 쓰기 위한 GUI 프로그램입니다. 

무료와 유료 버전이 있지만 두달 정도 사용해본 결과, 아직은 무료 버전으로도 충분한 것 같습니다.

https://git-fork.com/ 해당 링크를 들어가면 윈도우와 맥 OS가 있고 각자 노트북 OS에 맞게 설치하면 될 것 같아요 :)

 

 

 

Fork를 사용하는 이유, 장점

- Fork는 Git 클라이언트 프로그램들과 비교했을 때 매우 가볍다고 합니다.

- 가로 세로 모드를 지원합니다.

- Source Tree에 비해 Git Fork는 rebase 작업이 훨씬 편하다고 합니다.

 

 

이제 Fork 주요 기능에 대해 알아보겠습니다. Source Tree에서 지원하는 모든 기능을 거의 제공하여 소스 트리를 많이 사용 해신 분이라면 포크도 금방 익숙해질 것 같습니다!!

Prefernce에 있는 기능부터 간단하게 살펴보도록 하겠습니다. 다크/라이트 모드, 폰트 등 UI에 대한 설정이 가능합니다. 

다른 프로그램과 비슷하게 커밋메세지 설정, 깃 계정 설정 등 기본적인 기능들을 제공합니다.

 

메인 화면은 다음 사진 처럼, 브랜치 트리를 확인할 수 있고, Local Change 파일, 상단 toolbar를 커스텀할 수 있는 기능을 지원합니다. 이외에도 가로 세로 전환 모드를 지원한다고 해보니 사용해보면 좋을 것 같아요! 

 

 

Local Changes 메뉴도 트리, 리스트, Staged/Unstaged 형태 등 다양한 형태로 자신에 맞게 선택하여 볼 수 있습니다.

또한, 브랜치 트리에서 stash도 UI에 보여지기 때문에 stash 한 시간과 위치 등을 한눈에 확인할 수 있었습니다.

 

Fork의 장점이었던 Rebase도 확인해보니 정말 다양한 기능을 제공하고 있습니다! 또한, Merge 중 Conflict가 난 경우 아래 사진과 같이 

나타나며 fork를 이용하거나 외부 프로그램을 통해 해결할 수 있습니다.

 

이외에도 다양한 기능이 있으나, 다른 프로그램과 크게 차이가 나지 않기 때문에 Fork에 대한 소개는 여기까지 하도록 하고 GitFlow와 fork에서 GitFlow 적용하기도 알아보도록 하겠습니다. 🙌🏻 🙌🏻

 

Git Flow란

Git Flow는 Git에서 제공하는 강력한 브랜칭 기능을 활용한 변경이력 관리 전략입니다. 이 전략은 상황에 따라서 다양한 변화가 가능합니다.

Git-flow에는 5가지 종류의 브랜치가 존재합니다.

항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있습니다.

  • master : 제품으로 출시될 수 있는 브랜치
  • develop : 다음 출시 버전을 개발하는 브랜치
  • feature : 기능을 개발하는 브랜치
  • release : 이번 출시 버전을 준비하는 브랜치
  • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치

위 이미지는 Git Flow의 대표적인 이미지인데요, 그래프를 보며 상황을 알아보도록 하겠습니다. 프로젝트 초기에는 master와 develop 브랜치가 존재합니다. 우리는 새로운 기능을 추가하는 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성하여 각자 작업을 진행합니다. 이미지를 통해 feature 브랜치는 항상 develope에서 시작되는 것을 볼 수 있습니다. 새로운 기능을 추가하는 작업이 완료되었다면, 

feature 브랜치는 develop 브랜치로 merge 됩니다. 출시해야 할 이번 버전에 모든 기능이 develop에 merge 되었다면, develop 브랜치로부터 release 브랜치를 생성하며 QA를 진행합니다. QA를 진행하면서 발생한 버그들은 release 브랜치에 수정됩니다. 

진짜 출시 준비가 되었다면 release 브랜치를 master와 develop 브랜치로 merge 하며, 출시된 master 브랜치에서 버전 태그를 추가합니다.

 

 

그럼 Fork에서 프로젝트에 Git Flow를 어떻게 적용하는지 알아보도록 하겠습니다. 방법은 아주 간단합니다!😹

 

Git Flow를 적용하고 싶은 프로젝트를 열고 Repository-> Git Flow -> InitialIze Git Flow를 선택해줍니다.

그럼 다음과 같이 앞서 배웠던 5개의 브랜치 Prefix가 자동으로 적혀 있는 것을 확인할 수 있습니다. 버전 태그 Prefix도 추가하고 싶다면 추가한 다음, Initialize Git Flow를 누르면 바로 Git Flow가 적용됩니다.

이제 브랜치를 생성할 때 기존에 New Branch만 메뉴에 있었는데 Git Flow가 적용된 걸 볼 수 있습니다. 새로운 기능을 추가하기 위해 feature를 누르고 브랜 치명만 입력하면 feature 디렉터리가 생성됨과 동시에 setting 브랜치가 만들어진 것을 확인할 수 있습니다.

 

 

 

마무리

간단하게 Git Client 프로그램 종류와 Git Flow에 대해 알아보았습니다. 프로젝트를 진행하고 효율적으로 관리하기 위해서는 Git과 관련된 지식과 사용법은 많이 알수록 도움이 되는 것 같습니다.💡💡 여러 가지 툴을 사용해보고 자신에게 맞는 프로그램을 찾는 것도 좋은 방법일 것 같습니다. 

 

 

참고

https://techblog.woowahan.com/2553/