ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git) 버전관리 및 기본개념
    Git 2023. 3. 23. 01:09

    버전관리 시스템(형상관리)

    - Configuration Management Systems / Version Control Systems

    - Source Data + History

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

     

    버전관리 시스템의 종류

    중앙관리(CVCS) - CVS, SVN, ...

    분산관리(DVCS) - Mercurial, Git, ...

     

    Git 기본 용어

    - Repository : 소스코드가 저장되어 있는 여러 개의 branch가 모요있는 디스크상의 물리적 공간(local, remote로 구분)

    - Checkout : 특정 시점이나 branch의 소스코드로 이동 (checout 대상: branch, commit, tag)

    - Stage : 작업할 내용이 올라가는 임시저장영역 (이 영역을 이용하여 작업한 내용 중 commit에 반영할 파일만 선별하여 commit 수행)

    - commit : 버전을 관리하는 것, 작업할 내용을 local repository에 저장하는 과정

    (각각의 commit은 의미있는 변경단위, 변경에 대한 설명을 commit log로 남김 / 빌드 서버를 사용하는 경우, commit 단위나 commit log format을 정해놓은 회사나 팀도 있음)

    - tag : 임의의 commit 위치 쉽게 찾아갈 수 있도록 붙여놓은 이정표 (tag가 붙은 commit은 commit id(version) 대신 tag name 으로 쉽게 checkout 가능)

    - push : local repository 중, remote repository에 반영되지 않은 commit을 보내는 과정

    (검증되지 않은 코드는 push하지 않도록 함)

    - pull: remote repository에 있는 내용 중, local repository에 반영되지 않은 내용을 가져와서 저장하는 과정

    (push과정에서 충돌이 일어나서 push가 거절된 경우, pull을 통해 remote 변경내용을 local에 반영하여 충돌 해결한 후 다시 push 시도해야 함)

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

    (개발이 주축이 되는 branch를 master(main) branch라고 함 / 모든 branch는 최종적으로 다시 main으로 merge되는 형식)

    - merge : 하나의 branch를 다른 branch와 합치는 과정, merge되는 두 branch 는 주종관계가 성립

    (merge 되는 과정에서 충돌 발생할 경우, Diff를 수정하여 해결)

     

     

    💥 참고 - Line ending

    WindowCR(\r) + LF(\n) / Unix or Mac : LF(\n)

    윈도우와 맥 사용자가 같은 git repository를 작업할 때 코드에서 변경된 내용 없어도 CRLF 차이로 인해 commit 발생할 수 있음

    -> 가져올 때는 LF를 CRLF로 변경하고 보낼 때는 CRLF를 LF로 변경

    git config --global core.autocrlf true
    에디터 설정
    git config --global core.editor <editor>
    설정 확인
    git config --list
    항목별 설정 확인
    git config <key>

     

    'Git' 카테고리의 다른 글

    Git) Tag  (0) 2023.03.28
    Git) Merge / Conflict  (0) 2023.03.28
    Git) Log / Diff  (0) 2023.03.28
    Git) Branch  (1) 2023.03.28
    Git) Repository  (0) 2023.03.24

    댓글

binlog