Git 기본 개념

Nine·2022년 2월 24일
0

Git

목록 보기
1/4
post-thumbnail

1. Git이 뭐예요?

  • 분산형 버전 관리 시스템
  • 의미 있는 지점마다 수정과 저장을 하면서 그 지점을 기억합니다.
  • 버전관리에는 2가지가 있어요.

버전 관리 모델: 뭐가 있을까요?

  1. 서버 모델
  • 하나의 중앙 서버 존재하여 여러 클라이언트들이 각자 맡은 파트만 가져와서 작업하고 다시 중앙에 통합 시키는 방식입니다.

  • 대표적으로 CVS, SVN이 있어요.

  1. 분산 모델
  • 중앙 서버가 있지만, 여러 클라이언트들이 각자 컴퓨터에 중앙 서버 전체 사본을 가지고 작업합니다.
  1. 로컬 버전 관리
    • 💡 대표적으로 git이 있어요.
      • 중앙 서버 장애 생겨도 로컬 저장소에 커밋 가능!
      • 로컬 저장소들을 이용하여 중앙 저장소 복원도 가능!
      • 내 동료들과 겹치는 작업을 해도 이런 일들을 사전에 방지 해줌!
      • 여러 명 동시에 병렬 개발 가능!

GitHub는 그럼?

  • 웹호스팅 서비스를 이용하여 push, pull request 같은 이벤트에 반응하여 자동으로 작업을 실행하게 할 수 있습니다.

git fork vs git Clone

Git Fork

  • Original repository를 그대로 내 레포지터리로 가져오는 거예요.

  • 서로 연결되어 있어서 원본이 수정되면 fetch나 rebase을 통해 내 레포지터리에 반영됩니다.

  • 내가 만든 변경 사항을 원본에 적용하려면 pull request를 하면 되는데 이건 관리자가 승인을 해줬을 경우 반영이 됩니다.

  • 💡 즉, Github 내에서의 복사라고 생각하시면 됩니다.

Git Clone

  • clone은 특정 repository를 내 local machine에 복사하여 새로운 저장소를 만드는 것입니다.

  • clone한 원본 repository를 remote 저장소 origin으로 가지고 있습니다. 권한이 없는 경우 해당 저장소로 push 하지 못합니다.

  • 제가 직접 손으로 그려서 정리해봤어요


브랜치: 뭔가요?

  1. 여러 사람이 동일한 소스 코드를 기반으로 서로 다른 작업을 할 때에는 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없습니다.

  2. 이럴 때, 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이 바로 '브랜치(Branch)' 입니다. 각자 독립적인 작업 영역(저장소) 안에서 마음대로 소스코드를 변경할 수 있지요.

  3. 이렇게 분리된 작업 영역에서 변경된 내용은 나중에 원래의 버전과 비교해서 하나의 새로운 버전으로 만들어 낼 수 있습니다.

브랜치: 어떻게 만드나요?

  • master: 제품으로 출시(배포)할 수 있는 브랜치

  • develop: 다음 버전을 개발하는 브랜치

  • feature: 단위별로 기능을 개발하는 브랜치
    (완료되면 develop 브런치와 병합)

  • release: 배포 전 (master와 병합 전) QA를 통해 버그를 찾아내기 위한 브랜치

  • hotfixesmaster브랜치에서 발생한 버그를 긴급하게 수정하는 브랜치

  • master와 develop은 항상 유지되는 메인 브랜치들이며 그 외에 featurereleasehotfixes는 필요한 기간에만 유지되는 보조 브랜치들입니다.

프젝 단위가 작다보니 master 브랜치에서 작업하기도 하고 그랬었는데 알고보니 굉장히 중요한 브랜치네요... 앞으로는 작은 개발을 하더라도 브랜치의 기능을 알고 분리하는 습관을 들여야겠네요!

profile
함께 웃어야 행복한 개발자 장호영입니다😃

0개의 댓글