Git flow & Rebase, git reset Revert 등 git 심화

Git flow & Rebase, git reset Revert 등 git 심화

영리치 0 84 07.25 17:36

3555374273_nyODtQMf_02fb65f1abeedd017aa40541ad15b3218e9bfb29.png



배틀그라운드 PUBG 크래프톤 등 대기업에서 주로 사용하는 git flow

일반적인 대형 IT 기업에서 사용함


  1. gitflow는 브랜칭 모델로, 제품을 배포하고 운영하기 쉽게 git을 관리할 수 있도록 도와줍니다.
  2. main, develop, feature, release, hotfix 브랜치를 대표적으로 이용합니다.
  3. main branch : Production release에 사용되는 브랜치 develop branch : 다음 release에 포함되기 위해 생성된 feature 브랜치 코드가 병합되는 브랜치 feature branch : 새로 생성하는 기능을 개발할 때 사용되는 브랜치 release branch : develop 브랜치에서 다음 버전으로 출시할 기능을 추리고 Bug fix 수행 hotfix branch : production release 이후 생성된 에러를 수정하는 브랜치


3555374273_zmjlOHNa_0d9861c62d0fa1ed2780fe18c9589c7c219a529d.png

rebase하면 붙여넣기가 됨.


3555374273_QDLAjCOF_ff48f70939f2836258b3f0fe86dd5eee5ccbdc8b.png



만약 컨플릭트가 나면 컨플릭트를 해결 후 rebase할 수 있음

3555374273_E2gxU6tI_0ae8dc48dc98ce8612d37de122372b5d82882eb8.png


머지와의 차이점은?


머지는 머지를 삭제하면 머지한 내용 전부 다 삭제됨

리베이스는 그런 거 없이, 그 전 브랜치에서 커밋한 내용들이 모두 다 리베이스 되는 브랜치로 들어감.

따라서 커밋 로그가 기존 브랜치에서 있던 것들이 전부 다 같이 들어옴.


브랜치란 결국 커밋의 모음인데, 리베이스는 커밋의 모음을 다시 베이스 (토대로 한다)는 의미임



merge rebase squash 이 3개 중에 선택할 수 있는 데 관련 내용은 아래 링크에서 잘 설명해뒀으니 확인해보자

https://im-developer.tistory.com/182


참고로 스쿼시는 이전 브랜치를 하나의 커밋으로 하여 메인브랜치에 합치는 방법임

리베이스가 모든 커밋 기록을 남겨서 합치는 것에 반해,

스쿼시는 이전 브랜치의 커밋 기록을 하나의 커밋으로 합침.


깃허브 상에서 머지든 리베이스든 스쿼시든 PR에서 모두 다 이루어짐.

3555374273_Cx9Qny8K_6b650a3e0ce941a21036a40ecf7bcfc739c1ede1.png

위와 같이 머지 스쿼시 리베이스 이렇게 3가지로 구분됨.



git reset과

git revert의 차이


git reset은 커밋 자체를 삭제해버림

git revert는 특정 커밋에 작업했던 내용들을 모두 삭제하고 Delete 커밋을 새로 만듬. 즉 되돌리기 원복이 가능함


3555374273_8jTaIdUk_5d0de2090a8529ab81e6eaca3c4567fe64903f3e.png

위와 같이 원복이 가능함 f3(d) 커밋 생성 (revert 시)

따라서 리셋보다는 revert를 쓰는 게 안전하다.



커밋 로그가 같으면 같은 브랜치임.

이름이 달라도 커밋 로그가 같으면 같은 브랜치고

이름이 같아도 커밋 로그가 다르면 다른 브랜치인거임.


Comments

Category
Magazine
훈남/훈녀
 
 
 
Facebook Twitter GooglePlus KakaoStory NaverBand