ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git의 기초
    Git & Github 2022. 1. 13. 19:29
    728x90


    VCS(Version Control System)


    원하는 시점으로만 움직이고자 할 때 파일의 변경 사항을 저장하고, 원하는 시점의 버전을 다시 꺼내올 수 있는 시스템.

    • Snapshot : 특정 시점에서 파일의 상태
    • Delta : 파일의 이전 상태와 비교한 변경사항


    대표적인 DVCS(Distributed Version Control System)는 Git으로 저장소의 파일 시스템 전체를 스냅샷으로 취급하고 변경하지 않은 파일은 새로 저장하지 않으며 링크만 저장한다.

    > 빠른 속도, 단순한 구조, 비선형적인 개발, 완벽한 분산, linux 커널같은 대형 프로젝트에도 유용하다는 특징이 있다.

     

    Repo

     

    사용자가 변경한 모든 내용을 추적하는 공간으로, 하나의 디렉토리로도 볼 수 있다.

    > 현재 상태, 변경 시점, 변경한 사용자, 설명 텍스트 등이 저장된다.

     

     

    Git 사용 시 전체적인 구조와 특징은 다음과 같다.

     

     

    • local에서 저장 및 버전 관리 가능하므로 서버가 다운되어도 상관이 없다.
      원격 서버에는 나중에 올릴 수 있으며 WI-FI가 없는 환경에서도 작업이 가능하다.
    • 데이터를 추가만 할 수 있다. 예컨대, 파일 삭제는 -1이 아니라 + (-1)로 삭제 기록을 추가하는 작업과 같다. DB에 저장한 순간부터는 삭제까지 추적한다.
    • 파일을 추적하지 않으며, 파일의 내용 단위로 추적하므로 각 문자와 줄을 추적한다. 
      빈 디렉토리는 추적하지 않는다.

     

    다음은 Working Directory 에 있는 파일을 Local Repository로 Commit 하기까지의 과정이다.

     

    1. Git을 사용하겠다고 선언


       git init

     

    2. 파일을 추가/수정/삭제

     

       어떤 파일이 상태에 따라 계속 바뀌고, 딱히 저장할 필요가 없는 경우라면 ?
       저장하지 말고 관리하고 싶지 않은 파일은 따로 처리. (Untracked, Tracked)

       Git이 추적하는 파일은 3가지 상태로 구분
       Unmodified : 이전 버전과 비교해 수정된 부분이 없는 상태
       Modified : 이전 버전과 비교해 수정된 부분이 있는 상태
       Staged : 커밋을 위해 준비된 상태

    3. 원하는 변경사항 선택


       스테이징을 하면 커밋하고 싶은 파일 선택하고, 커밋을 했을 때 새로운 버전으로 업로드된다.


       Staging, Commit은 업로드를 2번하는 과정으로 보이는데, 이러한 이유는 여러 작업 중, 일부분만 커밋해야 할 때와   커밋 전 상태를 수정 또는 체크할 때 용도로 Staging이 필요하다.


    4. 상태 업데이트 및 커밋 완료


       commit 후 버전 상태를 업데이트 해주는데, 내용을 주소로 활용해 상태를 찾기 위해 key를 필요(버전의 주소)로 한다내용(파일 구조)등을 해시 값으로 만들고 상태를 나타낸다. 여기서는 해시 값을 이용해 40자리로 표현한다. 

     


    이러한 과정을 실제로 수행하기 위해 다음은 Git의 기본 명령어를 알아볼 것이다.

     

    Git 기본 명령어

    728x90

    'Git & Github' 카테고리의 다른 글

    Git 기본 명령어  (0) 2022.01.13

    댓글

Designed by Tistory.