ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git 입문편] 5. branch, checkout
    Git 2021. 3. 7. 23:41
    728x90
    반응형

    본 포스팅은 저의 인터넷 강의인 실무자가 알려주는 Git - 입문편의 강의안을 바탕으로 작성하였습니다.

     

    branch (br)

    • 커밋 사이를 가볍게 이동할 수 있는 어떤 포인터 같은 것 (3.1 Git 브랜치 - 브랜치란 무엇인가 )
    • 하나의 작업 공간 단위 정도로 생각
    • 브랜치 확인: git br
    • 브랜치 생성: git br test/1
    • 브랜치 삭제: git br -D test/1

    branch 전략

    대표적인 Git Flow

    <Git Flow>

    • master (2020년 10월부터 master에서 main으로 변경됨)
      • git init하면 생기는 태초의 브랜치
      • 배포 가능한, 말그대로 master(main) 브랜치
      • 보통 태그를 따서 태그로 배포함
    •  develop
      • 보통 작업할 때 기준이 되는 브랜치.
      • 개발 서버에도 평소에는 develop 기준으로 배포하며 테스트 함
      • 생성 위치: master (태초)
    •  hotfix
      • 서비스에 문제가 생기거나 갑자기 무언가 고쳐서 배포해야 할 때 사용
      • 생성 위치: master (그렇지 않으면 다른 작업들이 딸려 나감)
      • merge: master & develop
    •  feature
      • 실제로 뭔가 기능(feature)를 만드는 브랜치
      • 생성 위치: develop
      • merge: develop (code reivew)
    •  release
      • 새로운 기능들을 추가하여 배포하기 위한 브랜치
      • 생성 위치: develop
      • merge: master & develop
    • 다른 Git branch 전략들도 있음

     

    HEAD

    • 지금 작업하는 로컬 브랜치를 가리키는 포인터 (3.1 Git 브랜치 - 브랜치란 무엇인가)
    • 현재 브랜치 마지막 커밋의 스냅샷
    • branch를 변경하면 해당 브랜치의 마지막을 가리키고 있음
    • HEAD를 움직이면서 여러 버전의 코드들을 볼 수 있음

     


     

    checkout (co)

    • 다른 브랜치로 이동
    •  옵션
      • -b : 브랜치 생성하고 그 브랜치로 checkout
      • 아래 두 명령은 같음
    git co -b develop
    git br develop 
    git co develop

     

    checkout TIP

    • 커밋의 hash값을 알면 시간 여행이 가능함
    git lg
    
    ---
    
    * b0c729f - (3 hours ago) Rewrite commit message - Country (HEAD -> master)
    * 51462d0 - (6 hours ago) Modify st.md - Country
    * ab118e1 - (7 hours ago) Make st.md - Country
    * e5d33ad - (2 days ago) initial commit - Country (origin/master)
    git co e5d33ad
    
    ---
    
    Note: checking out 'e5d33ad'.
    
    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.
    
    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:
    
    git checkout -b <new-branch-name>
    
    HEAD is now at e5d33ad initial commit
    git lg
    
    ---
    
    * b0c729f - (3 hours ago) Rewrite commit message - Country (master)
    * 51462d0 - (6 hours ago) Modify st.md - Country
    * ab118e1 - (7 hours ago) Make st.md - Country
    * e5d33ad - (2 days ago) initial commit - Country (HEAD, origin/master)
    반응형

    'Git' 카테고리의 다른 글

    [Git 입문편] 7. stash, merge  (0) 2021.03.08
    [Git 입문편] 6. push, pull & fetch  (0) 2021.03.07
    [Git 입문편] 4. add, commit  (0) 2021.03.04
    [Git 입문편] 3. status, log  (0) 2021.03.04
    [Git 입문편] 2. Git lifecycle  (0) 2021.03.03

    댓글

Designed by Tistory.