loading
본문 바로가기
ETC

Git 설정/Git-flow 협업방식

by pikiforyou 2021. 3. 3.

Git Lab

git을 이용한 형상관리툴은 여러가지가 있는데, 팀 작업으로는 Git-lab이 익숙하고 유용할 것 같아 깃랩을 사용하기로했다. 특히 Git-hub은 1GB의 용량을 지원하지만, Git-lab은 10GB까지 지원하기 때문에 선택한 이유가 크다. 물론, 프로젝트가 완료시 깃헙에 소스코드를 올리는건 당연히 할거지만 :)

 

현재 맥북에서 사용을 할 때는 global 세팅만 처음에 잘해주면, CLI창으로 이용하는데 전혀 문제가 없었다. 하지만 팀원은 윈도우를 사용하고있고, 순수 터미널창이 아닌 이클립스-깃(GUI)을 사용한다고 했기에 자격증명과, 깃에 대해서 소소하게 정리해보았다.

 

 

 

 

 

Git-flow 방식

협업방식중 여러가지가 있는데, 먼저 고려했던건 Fork-Flow방식이었지만, 여러가지를 고려하여 GIT-FLOW방식으로 설계하기로 했다.

  1. 팀원이 Git을 어려워했기때문에, 최소한의 저장소관리만 할수있도록, 개인 원격저장소를 사용하지않는다.
  2. 직접 Master branch에 커밋시 충돌의 위험성이 크다
  3. 충돌나지않도록 최대한 개별 이슈를 맡기고, 그에 따라 본인이름을 명시한 브랜치명을 딴다
  4. 소규모/단기 프로젝트 이므로 개발버젼은 총 3개만 가지고 있어도 된다.
  5. 바로 push하지않고, PR(Pull Request)를 통해 코드를 확인후에 병합하도록 해야한다.

따라서, 총 3가지를 가져가게 되는데

master(개발하는 공간), product(실사용되는 버젼), member(각자의 브랜치공간)

이렇게 나누기로 했다. 후일 TDD나 QA를 통한 버그테스트를 진행한다면 그때마다 브랜치를 만들면 되므로, 가장 안정적이라고 생각한다.

 

 

git-flow방식에 대해 가장 잘 설명한 이미지라 생각해서 첨부했다!

 

 

 

 

 

 

팀프로젝트시 역할에 대하여

 

사실 이 부분은 팀프로젝트 기준으로 작성된 부분이다. 현재 Team.mudo로 페어프로그래밍하는 상황에는 서로가 팀원이자 팀장이기때문에 각자의 코드를 PR하기로 했다. 다만, 팀프로젝트를 준비하는 사람들에게는 도움이 될 것 같아서 기록을 남겨놓기로 했다.

 

 팀원이 해야할 역할 

  • 작업전 pull을 통해 최신정보를 가져온다(상황에 따라 fetch로 가져온다) 
  • 작업할 업무에대하여 새로운 브랜치를 만든다
  • commit을 이용하여 자유롭게 로컬브랜치에서 작성한다
  • push 를 통하여 원격저장소에 로컬브랜치의 내용을 보낸다
  • Merge 요청을 한다
  • 작업한 브랜치를 삭제한다

 팀장이 해야할 역할 

  • 위의 팀원이 해야할 역할도 당연히 개인브랜치를 따서 작업한다
  • Merge request 요청에 대하여 코드리뷰를 진행한다 (PR)
  • 충돌나는지 확인하여 병합한다
  • 병합후 충돌이 또 발생될경우 check-out을 통해 되돌리기 및 백업작업을 진행한다
  • 병합이 완료된이후 브랜치를 삭제한다
  • Main 브랜치를 최신으로 릴리즈한다
  • 변동된 사항을 팀원에게 알려 pull을 하도록한다

 

 

 

SSH / HTTPS (GUI사용시/window기준)

깃랩을 사용할 때는 SSH키를 인증받아서 들어오는 방법과, HTTPS를 통해 들어오는 방법 2개가 있다.

인증을 위한 로그인의 반복이 귀찮아서 SSH키를 발급받아서 할까했지만, 이클립스와 자주 충돌이 발생되는것같아 HTTPS Clone 방식을 사용하기로 했다. (실제로 충돌이 많이 일어나서 ssh key를 다시삭제했다)

HTTPS clone은 이클립스의 import > git project > clone URL 에 집어넣어도, 깃과 이클립스 깃이 같이 연동된다. 따라서 터미널을 이용한 깃 사용방법에 익숙하지않고, 이클립스-깃 플러그인(GUI)을 사용한다면 추천하는 방식이다.

++ 검색시 SSH/SSH KEY/KEY DENINED가 나오면, 우리가 원하던 문제의 해결법은 아닐테니 넘어가자

 

아래와 같은 경우에는 자격증명을 갱신해야한다.

제어판 > 사용자계정 > 자격증명관리자로 들어가 갱신하자.

  • 깃랩에 소셜로그인 연동으로 가입한 경우 → 비밀번호 다시 찾기로 재설정후 자격증명
  • 깃랩에서 비번을 바꾼 경우 → 자격증명에서 바뀐 비번으로 재설정
  • 그 외 이유로 자격증명에 GitLab이 없는 경우 → 자격증명에서 일반인터넷증명 추가로 설정
  • 처음 설정이 잘못된경우 → git bash 관리자모드에서 명령어 실행 / 자격증명 재설정

 

 


- 궁금한 점 / 수정 요청사항 등은 언제든 댓글 달아주세요 :)

- 도움이 되셨다면 ❤️ 하트 한 번 눌러주세요! 감사합니다 ! 

댓글