[GIT] GIT 학습일지 01

이소티·2023년 8월 2일
0

GIT

목록 보기
1/5

1. 버전관리 (형상관리) 란 ?


  • Source Data + History

  • 협업, 작업추적, 복구 등이 가능



< Local Version Control Systems >

  • 내 컴퓨터에서 버전 관리 가능 but 하드가 날아가면 전체 코드 사라짐

  • 버전은 관리 가능 but 협업 어려움


< Centralized Version Contro Systems >

  • 협업 가능 but commit 하는 순간 배포되어 다수에게 유발 가능

  • 인터넷이 안되면 작업 불가

  • 자신만의 version history를 가질 수 없음


< Distributed Version Control Systems >

  • commit 하더라도 개인저장소 내에 적용됨 ( 다른 개발자에게 영향 없음 )

  • 원하는 순간에 배포 ( PUSh ) 가능

  • 오프라인에서도 작업 가능

  • 자신만의 version histroy를 가질 수 있음






2. 버전관리 시스템의 종류


  • CVCS : CVS , SVN , ...

  • DVCS : Mercurial, Git , ...






3. Git 기본 용어



< Repository >

  • 소스코드가 저장되어 있는 여러 개의 Branch가 모여 있는 디스크상의 물리적 공간

  • Local Repository 와 Remote Repository로 구분



< Checkout >
  • 특정 시점이나 Branch의 소스코드로 이동하는 것을 의미

  • Checkout 대상 : branch, commit, tag

  • Checkout 을 통해 과거 여러 시점의 코드로 이동이 가능



< Stage >
  • 작업할 내용이 올라가는 임시저장영역

  • 이 영역을 이용하여 작업한 내용 중 commit에 반영할 파일만 선별하여 commit을 수행할 수 있음



< Commit >
  • 작업할 내용을 Local Repository 에 저장하는 과정

  • 각각의 commit은 의미있는 변경단위이고, 변경에 대한 설명을 commit log 로 남김



< Tag >
  • 임의의 commit 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표

  • Tag 가 붙은 commit은 commit id (version) 대신 tag name 으로 쉽게 checkout 가능



< Push >
  • Local Repository 의 내용 중, Remote Respository 에 반영되지 않은 commit을 Remote Repository 로 보내는 과정
    ( Push 하는 순간 다른 개발자들도 영향을 받으므로 검증되지 않은 코드는 Push 하지 않도록 주의 )



< Pull >

  • Remote Repository 에 있는 내용 중, Local Repository 에 반영되지 않은 내용을 가져와서 Local Repository 에 저장하는 과정

  • 다른 팀원이 변경하고 Push한 내용을 Local Repository에 가져올 수 있음

  • < Conflict > 발생하는 경우, Pull을 통해 remote repository 의 변경 내용을 local repository 에 반영하여 conflict를 해결하고 다시 push 시도



< Branch >
  • 특정 시점 ( commit 단위 ) 에서 분기하여 새로운 commit 을 쌓을 수 있는 가지를 만드는 것

  • 개발의 주축이 되는 branch 를 master branch ( 혹은 main branch ) 라고 함

  • 모든 branch 는 최종적으로 다시 master branch 에 merge 되는 형식으로 진행됨



< Merge >
  • Branch 의 반대 개념으로 하나의 Branch 를 다른 Branch 와 합치는 과정

  • Merge 되는 두 Branch는 주종관계가 성립

  • < Conflict > 발생하는 경우, Diff를 수정하여 Conflict 해결한 뒤 Merge 진행할 수 있음







4. Local Repository


Git 이 관리하는 3가지 단계로 구성


< Working Directory > - 작업공간

< Index ( Stage ) > - add 한 파일들 존재

< HEAD > - 최종 확정본 - commit 한 파일들 존재




  • 해당 폴더를 Git 이 관리하기 시작
git init

  • Index 에 추가
git add file_name

  • HEAD 에 반영
git commit -m "commit에 대한 설명" file_name








5. Remote Repository



  • Remote Repository 등록
git remote add origin https://github.com/<repository>.git

  • Remote Repository 등록 with Username and Token
git remote add origin https://<username>:<token>@github.com/<repository>.git

  • Remote Repository 정보 확인
git remote -v

  • Git Push

Local Repository (HEAD) 에 반영된 변경내용을 Remote Repository 에도 반영하기 위해서는 Git Push 를 사용

git push origin <branchname>

  • Git Pull

Remote Repository 의 내용에 맞춰 Local Repository 를 갱신하려면 Git Pull 사용

git pull origin <branchname>

  • Remote Repository 복제
git clone https://github.com/<repository>.git

profile
데이터 관련 학습 일지

0개의 댓글