Git과 Jira 활용하기

Meow.paw·2023년 2월 3일
0

GIT 활용하기

Branch

  • 독립적으로 어떤 작업을 진행하기 위한 개념
  • 각 브랜치는 서로 영향을 받지 않기에 여러 작업을 동시에 가능

git flow 전략

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

ex) Branch예시
Master

  • Develop
    • FE
    • BE

Commit

  • Push: Loacl Repository -> Remote Repository
  • Pull: Remote Repository -> Local Repository
    Commit, Push 전에 Pull 하는 습관을 들이자!

Merge Request(MR)

병합 대상 브랜치와 병합될 브랜치
feature 머지를 바로 master로 하면 git이 꼬일 수 있다는 점 주의

Title과 description작성을 통해 Create Merge Request를 만들수 있다. 코드 리뷰 후 머지할 수 있는 옵션도 있다.
Merge가 충돌되지 않으면 merge 버튼이 활성화되고 branch 삭제 옵션이 있으니 확인하자.

Conflictf를 방지할 방법들

  • 다른 사람이 작성한 코드는 임의로 건들지 말자
  • git pull을 통해 원격 저장소와 로컬 저장소를 자주 동기화
  • master, develop 브랜치에 직접 push는 자제(대신 MR를 날리자)
  • commit & push를 생활화 하자

Pull Request란?

  • 자신이 commit한 내용을 알리고 main branch에 merge를 요청하는 것
  • push 권한이 없는 레포지토리이거나 협업을 하는 등의 경우에 사용

Pull Request 과정

본 과정 설명은 윈도우10에서 git bash를 사용하였으며 Mac 환경일 경우 터미널 앱에서 git 명령어를 사용하여 따라할 수 있음

목차

  1. Fork 하기
  2. Fork 레포지토리를 Clone 및 Branch 생성
  3. 수정 후 add, commit, push
  4. Pull Request 생성
  5. Merge 이후 코드 동기화 및 Branch 삭제
  6. (부록) 마크다운에 이미지 링크로 첨부하기

과정

  1. Fork 하기

    1. 원본 레포지토리 우측 상단의 Fork 클릭
    2. Create fork 클릭
    3. Fork 생성 완료
  2. Fork 레포지토리를 Clone 및 Branch 생성

    1. Local 폴더에 Fork한 레포지토리를 clone

      git clone "repo URL"
    2. 디렉토리 이동 후 자신만의 branch 생성

      # change directory
      cd cs-study
      
      # branch 생성 및 checkout
      git checkout -b "브랜치이름"
      
      # 현재 존재하는 branch 확인 (*표시에 색이 다른 이름이 현재 브랜치)
      git branch
      • 다른 방법 (브랜치 생성 후 checkout)
        # 위와 다른 점은 branch 생성과 checkout을 동시에 하는 것이 아니라 따로 한다
        
        # branch 생성
        git branch "브랜치 이름"
        
        # branch checkout
        git checkout "브랜치 이름"
  3. 수정 후 add, commit, push

    1. 브랜치 내용 수정 후 add

      # .gitignore 항목을 제외한 현재 디렉토리(/.)의 모든 파일 스테이징
      git add .
    2. commit 및 push

      # 스테이징한 파일들 commit 하기
      git commit -m "커밋 메시지"
      
      # origin 원격브랜치에 내가 만든 브랜치(yunhwan)를 push
      git push origin "브랜치 이름"
  4. Pull Request 생성

    1. push하고 나면 Fork 레포지토리에 생기는 Compare & pull request 클릭
    2. merge하는 branch가 제대로 되어 있는지 확인하고 간단한 메시지 작성 후 Create pull request 클릭
  5. Merge 이후 코드 동기화 및 Branch 삭제

    원본 레포지토리에서 pull request가 merge되면 Fork한 레포지토리와 local 레포지토리의 동기화가 필요

    1. Fork 레포지토리 main 브랜치가 업데이트가 필요해지면 Sync fork의 Update branch 버튼이 활성화 → 클릭

    2. local 레포지토리에서 pull

      # main branch로 변경
      git checkout main
      
      # local main 브랜치로 pull
      git pull
    3. local branch 삭제

      # 현재 존재하는 branch 확인
      git branch
      
      # branch 삭제
      git branch -d "브랜치 이름"
    4. Fork한 레포지토리의 branch 삭제

      • View all branches 클릭
      • Your branches에 휴지통 아이콘 클릭
      • 삭제 완료
    • Fork 레포지토리를 동기화하는 다른 방법 (원본 레포지토리를 리모트로 등록) Local 레포지토리 동기화 → Fork 레포지토리에 push하는 방식
      1. 원본 레포지토리를 remote branch로 등록

        # remote branch 목록 보기
        git remote -v
        
        # 원본 레포지토리를 remote branch로 등록 (origin이 아닌 다른이름으로 생성)
        git remote add "원격브랜치명" "원본 repo URL"
      2. 등록한 원격브랜치로부터 pull

        # 원격에 있는 main이라는 브랜치로부터 현재 로컬 브랜치로 pull
        git pull "원격브랜치명" main
      3. Fork 레포지토리로 push

        # 원격브랜치 origin/main으로 푸시
        git push origin main
  6. (부록) 마크다운에 이미지 링크로 첨부하기

    1. 아무 github 레포지토리에서 Issues탭 클릭
    2. New issue 클릭
    3. comment 부분에 이미지 파일을 드래그
    4. 이미지 링크 생성 완료

Jira 활용하기

Jira란?

버그 추적, 이슈 추적, 프로젝트 관리 기능 제공

Jira 사용하기

  1. 백로그에서 스프린트 생성
  2. 스프린트에 이슈 등록
  3. 생성된 이슈에 스토리 포인트 설정
  4. 스프린트 시작
  5. 이슈관리
  6. 스프린트 종료

백로그? 스프린트?

백로그 : 프로젝트에서 해야 하는 일(요구사항)을 보여줌
스프린트 : 스크럼 보드의 개발 주기 단위

이슈?

  • 오류, 버그, 새로운 기능, 작업 요청, 질문이나 의견 등 개발에 관한 모든 것
  • Issue 종류 : Epic(큰틀), Story(이야기-회원관련, Task(작업), SUB-TASK(부작업), BUG(버그)

Sprint 생성

백로그에서 스프린트 만들기 누르기
스프린트가 생기면 이슈 생성 버튼을 통해 만들어서 넣어주어야 한다.
스토리, 작업, 버그, 에픽중에 선택하여 만든다.
밑에 이슈를 스토리, 작업에 연결하고 싶은 경우 연결할 이슈를 선택하면 된다.
이슈 만들기를 내리다보면 담당자를 선택할 수 있다.
레이블은 원하는대로 선택하여 사용하면 된다.

Story Point설정

Story Ponit

  • 특정 기능을 개발하는데 필요한 노력의 양의 추정치, 이슈 별 최대 4 point 할당
    1point = 1h
    팀원 1명이 하루 동안 일할 수 있는 시간은 8시간
    일주일(5일간) 총 근무 시간은 8 * 5 = 40시간이므로 총 Story Point 40
    기능 별로 개발 난이도를 고려하여 스토리 포인트 책정, 할 일 분배

번다운 차트

어떻게 이슈를 해결해왔는지 알 수 있다.
이슈 먼저 만들고 스프린트 추가하기

Jira의 생명은 컨벤션 관리

profile
냥냥냥

0개의 댓글