부스트캠프

git

o늘do 2020. 8. 26. 14:37

🤔 git branch 란 ?

  • 현재 개발중인 코드에서 코드를 통째로 복사하고 원래코드와 상관없이 독립적으로 여러 기능을 개발하고 싶을때 만드는 것

  • 하나의 commit 과 그 부모 commit 들을 포함하는 작업내역.

  • git branch '브랜치명' 으로 브랜치를 생성할 수 있다.

    브런치를 생성한후 git checkout `브랜치명` 으로 이동한 후 작업을 시작해야한다.

ex) git branch newBranch : 새로운 브런치를 생성.

     git checkout newBranch : 새로 생성한 브랜치로 이동.

 

⇒ 새로만든 브랜치에서 master 브랜치와는 독립적으로 개발을 할 수 있음.

다같이 확인할 사항.

🤔 원본저장소 Fork ~ PR 까지의 흐름

  • fork : 다른사람의 Github 저장소에 내가 어떤 부분을 수정하거나 기능을 넣고 싶을때 해당

    저장소를 내 Github 저장소에 그대로 복제하는것.
  • clone : 특정 저장소를 내 컴퓨터에(local 저장소) 에 복사해여 새로운 저장소를 만드는것

  • git clone <https://github.com/`자신의> 깃헙 유저네임`/`저장소이름` // 오늘 미션과 같이 특정 브랜치만 clone 하는경우.

  • git clone <https://github.com/`자신의> 깃헙 유저네임`/`저장소이름` -b `브랜치이름` --single-branch

 

출처 https://velog.io/@imacoolgirlyo/Git-fork와-clone-의-차이점-5sjuhwfzgp

  • add

    코드를 클론받고 새로운 코드를 작성했다면 git add 를 해주어 git 이 변경된 사항을

    추적할 수 있게 해준다.
  • commit

    파일 및 폴더의 추가/변경 사항을 내 로컬 저장소에 기록하는것!.

  • push

    commit 이후 내 컴퓨터(local)가 아닌 원격 저장소에 변경사항을 업로드하는것.

  • pull request

    fork 한 레퍼지토리에 내가 push 한 내용(브랜치) 를 pull request 를 보내

    다른 사람 저장소에 내가만든 기능을 추가 할 수 있다.

🤔 git add 와 commit 할때 git 내부에서 일어나는 동작

출처:  https://git-scm.com/book/ko/v2/Git의-기초-수정하고-저장소에-저장하기

 

 

  • git add

    git add 는 현재 브랜치에서 현재 변경된 파일이내 내용이 있음을 알려주는것 ⇒ git 파일을 추적할 수 있게 해준다. 즉 파일의 상태를 Untracked ⇒ Staged 상태로 변경해주는것.

  • git commit

    git add 이후 commit 을 해주게 되면 staged 에 있는 상태의 파일들을 하나의 스냅샷으로 찍어 로컬 저장소에 저장하게 된다. 이후 상태는 staged ⇒ Unmodified 로 변경되게 된다.

🤔 깃 branch 전략

  • gitflow 전략

    gitflow 에 사용되는 5가지 종류의 브랜치

    • master : 제품으로 출시될 수 있는 브랜치
    • develop : 다음 출시 버전을 개발하는 브랜치
    • feature : 기능을 개발하는 브랜치
    • release : 이번 출시 버전을 준비하는 브랜치
    • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
  • 개발흐름

    • 초기에 master 브랜치와 develop 브랜치가 존재
    • devleop 브랜치에는 상시로 버그를 수정한 커밋들이 추가
    • 새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성
    • feature 에서 완료된 작업 develop 브랜치로 merge
    • QA 를 하기위해 develop 브랜치에서 release 브랜치 생성
    • QA 를 총해 버그가 수정된 release 브랜치를 master 와 develop 브랜치로 merge

⇒ 일관되게 여러상황을 대처할 수 있음. 변화에 유연함.

⇒ 하지만 브랜치가 많아 복잡 할 수 있다는 생각이든다.

📝 여러가지 branch 전략.

https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html

https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/

 

'부스트캠프' 카테고리의 다른 글

Mongoose 에 TypeScript 적용하기  (0) 2020.11.27
TCP/IP, 3-way HandShaking, DNS  (0) 2020.09.05
Day4(해쉬와 단위테스트)  (0) 2020.08.29
링크드 리스트  (0) 2020.08.27
부스트 캠프 회고.  (0) 2020.08.25