(TIL 15일차) React, Git Session정리

pks787·2020년 2월 12일
0

TIL(Today I Learned)

목록 보기
8/27

React Session

create-react-app setting

  • 서비스 워커 : 인터넷이 끊기면 동작 X, 하지만 오프라인에 대비해 어느정도 이벤트가 작동하도로고 미리 js를 캐시해서 돌아가게끔 도와줌
  • GNB(Global Navigation Bar) : 공통적으로 사용하는 컴포넌트
  • 라우터 작동 원리 : 페이지 이동시 통신 없이 js만 작동하는 원리, 클라이언트 사이드 렌더링 방식(서버와 계속 통신하는 것이 아닌 이벤트 처럼 돌아감)

Git sesstion 정리

Git 이용시 Tip

  • 새로운 브랜치 생성 시 feature/~~ 규격을 사용
  • 브랜치 네임은 모두 lower-case 사용

tig

  • git log의 상태를 이쁘게 보여줌

merge(fast-forward 병합)

  • 변경 내용의 이력이 모두 그대로 남아 있기 때문에 이력이 복잡
  • 통합 브랜치에 토픽 브랜치를 불러올 경우에는 우선 rebase 를 한 후 merge

마스터 브랜치 흐름과 피쳐 브랜치 흐름이 같은 경우

merge2
merge3

  • 'bugfix' 브랜치를 'master' 브랜치로 병합할 때, 'master' 브랜치의 상태가 이전부터 변경되어 있지만 않으면 매우 쉽게 병합
  • 병합은 'fast-forward(빨리 감기) 병합

마스터 브랜치 흐름과 피쳐 브랜치 흐름이 다른 경우

merge4
merge4

  • 'master' 브랜치 내의 변경 내용과 'bugfix' 브랜치 내의 변경 내용을 하나로 통합
  • 새로운 브랜치에서 남은 이력(커밋)들이 병합이 실행되면 기존 이력도 남게 되어 지저분 해짐
  • merge는 병합이 이루어지는 순간 머지 포인트가 남아서 나중에 log 볼 때 불편함
    merge는 마스터로 체크아웃 한 후 새로운 브랜치를 merge

rebase (non-fast-forward병합)

  • 토픽 브랜치에 통합 브랜치의 최신 코드를 적용할 경우에는 rebase 를 사용,
    rebase
    rebase1
    rebase1
  • 'bugfix' 브랜치를 'master' 브랜치에 rebase 하면, 'bugfix' 브랜치의 이력이 'master' 브랜치 뒤로 이동, 하나의 줄기로 이어짐
  • 커밋 X와 Y 내에 포함되는 내용이 'master'의 커밋된 버전들과 충돌하는 부분이 생기면 각각의 커밋에서 발생한 충돌 내용을 수정할 필요
  • merge 커밋 포인트가 안 남는 상태로 병합이 이루어져 나중에 로그 볼때 간략하게 볼 수 있음
  • rebease는 새로운 브랜치에서 마스터와 병합할 때 새로운 브랜치로 체크아웃 한 후 rebase master를 하는데 그러면 master 앞 포인트로 이동해 master로 체크아웃 한 뒤 merge를 한 번 더 해줘야 함
  • rebase는 conflict 수정 뒤 add, commit을 하는게 아니라 continue를 해줘야 함
  • rebase -i를 이용하면 쉽게 병합가능

merge --squash

브랜치의 모든 커밋을 하나의 커밋으로 병합
rebase1

  • 'master' 브랜치로 이동한 후, '--squash' 옵션을 지정하여 merge 를 실행
  • 스쿼시를 사용하는 경우는 드물다!
  • 위의 명령 대로 하게 되면 마스터브랜치 기준 최신으로 되기 때문에 시간정보가 바뀌지 않는다

rebase를 할 경우 마스터를 pull 받아와 정보를 최신화 시키고 시간정보는 변경된 상태로 마스터의 최신버전으로 들어가게 됨!


profile
Front End. Dep

0개의 댓글