새싹🌱

0715 9회차

idleday 2022. 7. 15. 20:23

0715

💡 개발문화 & Git Branch

❓ Later

  • [ ] merge 종류
  • [ ] merge comment 여부
  • [ ] vi/vim 편집기
  • [ ] Node.JS 예습
#커밋 삭제

git log
**git reset HEAD~1**
**git push -f origin main**

 


Agile

  • Waterfall 모델장점
    • 단순한 모델
    • 단계별 정형화된 접근으로 문서화 용이
    단점
    • 떨어지는 유연성
    • 시스템 동작을 후반에 가야 확인가능
    • 대형프로젝트에 부적합, 일정지연 가능성
  • 고전적인 SW생명 주기, 순차적 수행

짧은 주기의 개발단위(설계, 개발, 테스트, 배포)를 반복하는 방법론

요구사항 단위로 쪼개 솔루션 구축

  • 협력 + 피드백
  • 유연성 + 대응성

Scrum(스크럼)

  1. 개발자-고객 지속적 커뮤니케이션
  2. 고객 요구사항 가장 우선적으로 시행
  3. 주기적인 미팅으로 프로젝트 점검
  4. 주기적 제품시현, 피드백 수용

Daily Scrum

10분정도 매일 점검

Sprint

  • 주기: 1~2주
  • 작은 기능에 대해 “계획, 개발, 테스트, 기능 완료" 주기적 시행
  • 실패하면 다음 기능으로 전환.

Kanban(칸반)

단계별 작업 현황을 열 형식의 보드로 시각화하는 프로젝트 관리방법

장점

  • 업무 흐름 시각화
  • 진행 중 업무 제한
  • 명시적 프로세스 정책 수립

Tools

  • zira
  • trello
  • github - project

Git Branch

Git?

분산형 버전관리 시스템

  • 소스코드 변경이력 쉽게 확인
  • 특정 분기 버전 관리

Branch

작업 분기해서 처리, 독립 작업

Branch 명령어

#브랜치 목록 조회
git branch 
git branch -r #remote
git branch -a

#브랜치 이동
git checkout "브랜치명"
git checkout -b "브랜치명" #생성&이동
#브랜치 생성
git branch "브랜치명" #local
git push origin "브랜치명" #remote

#브랜치 삭제
git branch -d "브랜치명"
git branch -D "브랜치명" (강제삭제)
git push origin --delete "브랜치명" #remote

Branch 종류

Master

제품 출시 브랜치

배포 이력 관리

develop

다음 출시버전 개발 브런치

기능개발 브랜치 병합

feature

기능개발 진행 브랜치

새로운 기능 개발 및 버그 수정을 할 때마다 develop에서 분기

로컬에서 진행 후 develop에 merge공유

이름: feature/~~

git checkout -b feature/이름 develop
#develop에서 복제

/* 개발~~ */

git checkout develop
git merge --no--ff feature/이름
git branch -d feature/이름
git push origin develop

release

출시버전 준비하는 브랜치

배포 전용 브랜치

이름: release-0.0

git checkout -b release-1.2 develop #develop에서 복제

/* 배포 사이클 */

git checkout master
git merge --no--ff release-1.2
git tag -a 1.2

git checkout develop
git merge --no--ff release-1.2
git branch -d release-1.2

hotfix

출시버전의 버그 수정 브랜치

배포버전 긴급 수정용

Master에서 분기

이름: hotfix-0.0.0

git checkout -b hotfix-1.2 master #master에서 복제

/* 문제 수정 */

git checkout master
git merge --no--ff hotfix-1.2
git tag -a 1.2

git checkout develop
git merge --no--ff hotfix-1.2
git branch -d hotfix-1.2

Merge(병합)

Merge 케이스

  1. 서로 다른 파일 수정
git checkout "현재 브랜치"
git merge "대상 브랜치명"
  1. 같은 파일 or 다른 부분
git checkout "first"
git merge "second"
  1. 같은 파일 같은 부분 → 병합충돌
<<<<<<<< HEAD (Current Change)

========

>>>>>>>> second (Incoming Change)
  • 병합충돌 해결
    • Accept Current Change
    • Accept Incoming Change
    • Accept Both Changes
    • Compare Changes
  • add - commit - push

Merge 종류 ??

  1. —ff
  2. —no-ff
    • Fast-forward여부 상관X
    • feature commit 무시
  3. —ff-only
  4. —squash
    • feature commit 병합
#기존 commit 그대로
git merge

#feature commit 무시 
git merge —no-ff 
  • [ ] Fast-forward
  • [ ] Recursive(3 way-merge)
  1. merge
  2. rebase (기본)
  3. squash
    • 커밋 합쳐서 새로 merge commit
git checkout main

git checkout -b 1
#생성수정
git add .
git commit -m "1"
git push origin 1

git checkout main

git checkout -b 2
#생성수정
git add .
git commit -m "2"
git push origin 2

git checkout 1
git **merge** 2
git log #merge commit 확인 가능

--no-f

git checkout main

git checkout -b 3
git commit -am "3"

git checkout main
git **merge** --no-f 3

git 명령어

git commit -am "커밋메세지" #파일새로생성시 사용X
git fetch —all #remote -> local

git reset HEAD^ #최근커밋 취소
git reset --hard "커밋로그" #특정커밋 취소

fetch

  • 원격저장소에 변경내용 확인하고싶을 때

.gitignore

  • git 버전관리에서 제외할 파일
  • 파일이름 적기
  • key파일, module 등

'새싹🌱' 카테고리의 다른 글

[TIL] 220724  (0) 2022.07.24
0718 10회차  (0) 2022.07.18
0713 8회차  (0) 2022.07.13
0711 7회차  (0) 2022.07.12
[WIL] 2주차  (0) 2022.07.11