📄 개발환경 세팅 & 가이드 1 (Git)

2023. 4. 9. 20:53·📄 Document/Project 설계
목차
  1. 💡 Git Project + 칸반보드
  2. Github Repository의 필수 파일
  3. 프로젝트 관리에 활용가능한 Github 기능
  4. 💡 Git Branch
  5. Git Branch
  6. 기타 git 명령어
  7. 💡 Git Flow
  8. Coz' Git Flow - Coz' Git Flow는 중요 브랜치인 main,dev 브랜치가 있다.

💡 Git Project + 칸반보드

칸반보드의 장점

  • 진행중인 업무의 시각화
  • WIP 제한을 통한 효율적인 작업 처리
  • 업무 흐름 관리
  • 진행중인 업무 제한
  • 팀 정책 설정 (WIP제한, 티켓 생성권한, 소통원칙 등)

Github Repository의 필수 파일

  • README.md
    • 프로젝트명, 핵심기능 및 소개, 팀원 소개
  • .gitignore
    • Git의 관리대상에서 벗어남, 개인의 Secret Token이나, 공유가 불필요한 설정파일 등을 파일에 명시
  • LICENSE
    • Public인 코드에 라이센스를 명확하게 표기해야함

프로젝트 관리에 활용가능한 Github 기능

  • Issue
    • 프로젝트에 새 기능 제안 & 버그 리포트 등 프로젝트에서의 이슈를 의미하며, 칸반 티켓처럼 사용
    • 아이디어 공유 & 피드백 & 태스트 & 버그 관리 용도로 사용
    • ex)
      • 제목 & 본문 작성
      • Assigness : 태스크를 맡을 인원 지정
      • Labels : 라벨 지정
      • Projects : 프로젝트 지정
      • Milestone : Milestone 지정
    • Issue Temlate Card (이슈 Form 생성)
      • Repo Settings 하단 Features - Issues - Set up Templates
  • Milestone
    • 이정표 역할, 태스크 카드(Issue)를 그룹화하는데 사용함
    • 연결된 카드가 종료되면 Milestone 마다 업데이트된 진행 상황 확인 가능
    • 이 기능을 통해 이슈의 추적 & 진행상황을 한눈에 파악 가능
    • ex)
      • Repo - Issue - Milestione - Create
      • title : Milestone의 이름
      • Due date : Milestone의 마지막 날
      • 계획에 알맞은 개수만큼 Milestone과 Task를 만들어서 관리
  • Pull Request
    • 내가 작업한 내용을 main branch에 merge 할 수 있는지 확인하는 작업
    • PR에서 커밋한 코드에 리뷰를 달 수있는 기능도 포함
    • 코드 리뷰 가능
  • Project
    • 이 기능을 활용하여 칸반 보드 생성 & 칸반으로 업무의 흐름 관리
    • 작업 계획 & 트래킹에 적합
    • ex)
      • Repo - Project - Add Project
      • Table & Board 선택 후 Create
      • 생성 후, Settings - Project Name 설정
      • 좌측 Manage Access 권한 설정 & 팀원 초대
      • Issue & PR 연결 (기존 생성된 item 모두 추가)
      • 각 이슈의 상태 & 그룹 설정 가능

💡 Git Branch

Branching이란?

새로운 기능 개발 시, 기존 메인 코드를 건드리지 않고 적용할 수 있는 버전 관리 기법


Git Branch

  • 브랜치 생성
    • git switch -c sub & git checkout -b sub
  • 브랜치 스위치
    • git switch [branch_name] & git checkout [branch_name]
  • 브랜치 병합
    • 로컬에서의 merge
      • 필요에 따른 여러번의 git commit 후
      • git switch main
      • git merge sub
    • Pull Request를 통한 merge
      • sub 브랜치에서 작업 후 push
      • merge
  • 브랜치 삭제
    • git branch -d [branch_name]
    • git branch -D [branch_name] (merge 되지 않은 브랜치 삭제)

기타 git 명령어

  • 유저 정보 설정
    • git config --global user.name
    • git config --global user.email
  • 초기화
    • git init
  • 스테이징 & 커밋
    • git status
    • git add [file]
    • git reset [file]
    • git diff
    • git diff --staged
    • git commit -m " "
  • 비교 & 검사
    • git log branch2..branch1
      • branch 2에 없는 branch 1의 모든 커밋 히스토리 표시
    • git log --follow [file]
      • 해당 파일의 모든 변경사항 커밋 표시
    • git diff branch2...branch1
      • branch 1에는 있고 branch 2에 없는것의 변경내용 표시
  • 공유 & 업데이트
    • git remote add [alias] [url]
      • 특정 repo 별칭 지정해서 추가
    • git fetch [alias]
      • 해당 별칭의 repo의 모든 브랜치 & 데이터 클론
    • git merge [alias]/[branch]
      • remote를 현재 작업중인 브랜치와 병합
    • git push [alias] [branch]
      • 로컬의 커밋을 remote로 전송
  • 임시 저장
    • git stash
      • 수정 & 스테이지된 사항을 스택에 임시저장 후 현재 작업 내역에서 지움
    • git stash list
      • 임시 저장 목록 표시
    • git stash apply
      • 임시저장 -> 현재 작업 복귀
    • git stath pop
      • 임시저장 -> 현재 작업 복귀 후 스택에서 삭제
    • git stash drop
      • 스택에 저장된 임시 삭제

💡 Git Flow

Git Brancing 전략 중 가장 많이 사용하는 전략이며,
대규모 개발 프로젝트를 제작하여 하나의 소프트웨어 버전을 명확히 나누고
다양한 버전을 배포해야 하는 개발 환경에 적합함

  • 개발 현장의 상황에 맞는 Git Flow 선택
  • Github Flow, Gitlab Flow 등이 있음
  • Git Flow를 단순화한 Coz' Git Flow로 연습 권장

Coz' Git Flow - Coz' Git Flow는 중요 브랜치인 main,dev 브랜치가 있다.

  • main Branch
    • 언제든 상용화 할 수 있는 브랜치
    • 완성된 기능
    • 웹에서의 공개적인 통신 가능
    • 최소한의 보안 충족
  • dev Branch
    • 개발중인 브랜치
    • 개발에 참여한 모든 인원의 결과를 합쳐서 확인 할 수 있을 정도로 준비가 된 상태여야 함
    • 팀원의 코드리뷰를 받고 진행하는것이 정석
  • feature Branch
    • 보조 브랜치
    • 기능 개발, 리팩토링, 문서, 단순 오류 수정 등 다영한 작업 기록을 위한 브랜치
저작자표시 (새창열림)

'📄 Document > Project 설계' 카테고리의 다른 글

Hexagonal Architecture 구현 - 1 (Multi-Module, Kotlin)  (3) 2024.09.07
Agile  (0) 2023.04.30
Sequence Diagram  (0) 2023.04.27
📄 개발환경 세팅 & 가이드 3 (프로젝트 설계)  (0) 2023.04.09
📄 개발환경 세팅 & 가이드 2 (SRS 개념)  (0) 2023.04.09
  1. 💡 Git Project + 칸반보드
  2. Github Repository의 필수 파일
  3. 프로젝트 관리에 활용가능한 Github 기능
  4. 💡 Git Branch
  5. Git Branch
  6. 기타 git 명령어
  7. 💡 Git Flow
  8. Coz' Git Flow - Coz' Git Flow는 중요 브랜치인 main,dev 브랜치가 있다.
'📄 Document/Project 설계' 카테고리의 다른 글
  • Agile
  • Sequence Diagram
  • 📄 개발환경 세팅 & 가이드 3 (프로젝트 설계)
  • 📄 개발환경 세팅 & 가이드 2 (SRS 개념)
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      GStreamer #Pipeline
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    📄 개발환경 세팅 & 가이드 1 (Git)
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.