[데분스] Day+9(1). Git - VCS (Version Control System), Git의 버전관리, Git Repository, Git 기본사용 문법

용솝·2024년 3월 5일

Git

목록 보기
1/3
post-thumbnail

1. VCS (Version Control System)

  • VCS 이전 : 최종...최최종...진짜최종...처럼 버전별로 파일을 관리해야 했음. 수동으로 백업해야 했고, 컴퓨터가 다운되면 개발하던 코드가 날라가는 문제점

  • VCS (Version Control System) : 버전 관리 시스템(형상 관리 시스템). 소스데이터와 히스토리를 관리 => 협업, 작업추적, 복구 가능

  • VCS 종류

종류설명특징
로컬 버전관리(LVCS)내 컴퓨터에서 버전을 관리하드 디스크가 고장나면 전체 코드가 사라지며, 협업이 어려움
중앙집중식 버전관리(CVCS)중앙 서버에서 버전을 관리 ex) CVS, SVN커밋과 동시에 중앙서버에 적용되어 버그가 다수 발생, 자신만의 히스토리를 관리 어려움, 인터넷 연결 필요로 협업에 제한
분산형 버전관리(DVCS)서버와 로컬에서 버전을 관리. (전체를 클론한 진정한 백업) ex) Git커밋하면 개인 저장소에 적용되며, 원하는 순간에 배포(push)가 가능, 자신만의 히스토리 존재, 오프라인 작업 가능

2. Git 의 버전관리

  • 데이터 저장방식 : 파일의 Diff를 시간순으로 관리하는 방법이 아닌,
    파일을 저장하는 순간의 '스냅샷' 방식으로 저장!
    (변경사항 없으면 새로 저장 X)
  • 구성요소
    • Working Directory : 실제로 작업하는 로컬 저장소. 파일을 추가, 수정, 삭제하는 작업이 이루어지는 공간
    • Staging Area(Index) : 'git add' 명령어를 통해 수정사항을 등록하는 중간 단계의 공간. 커밋할 변경사항들이 준비되는 곳
    • .git Directory(Repository) : 'git commit' 명령어를 실행하면 변경사항이 저장되는 곳. 프로젝트의 모든 버전 정보와 히스토리가 저장
  • 파일 상태
    • Untracked : Git이 아직 관리하지 않는, 즉 추적하지 않는 파일의 상태
    • Tracked : Git이 추적하는 파일의 상태
    • Staged : 수정이 완료되고 커밋 대기 중인 상태. 즉, Staging Area에 등록된 파일의 상태
    • Committed : 변경사항이 로컬 저장소에 안전하게 저장된 상태
    • Modified : 마지막 커밋 이후로 수정된, 그러나 아직 Staging Area에 등록되지 않은, 파일의 상태

  • 작업순서
    • 1) Working Directory 에서 파일 수정
    • 2) Staging Area(Index)에서 파일을 Staged 하여 Commit 할 스냅샷 만들기
    • 3) Staging Area(Index)에서 파일을 Commit 하여 .git Directory(Repository)에 스냅샷 저장

3. Git Repository

  • Git Repository : Git으로 관리하는 프로젝트 저장소

  • 저장소

    • Local Repository : 사용자 컴퓨터 저장소
    • Remote Repository : 원격 서버 저장소
  • 저장소 생성 : Git Init 으로 프로젝트 폴더를 만듦과 동시에 생성하거나, Git Clone 으로 원격 저장소에서 복사해오거나

    git init 은 프로젝트 폴더 직접 들어가서 작성!!!
    git clone 은 상위 수준에서 작성!!!
    (프로젝트 폴더 만들어주고, .git 설치해줌)


    4. Git 기본사용 문법

  • git status : 파일상태 확인(Working Directory 와 Staging Area의 상태)

  • git add <파일이름> : W.D에서 생성된 파일을 S.A(Index)에 추가. Modified 상태 파일을 Staged 상태로 변경

    	> git add * : 쓰레기까지 같이 올라가니 조심..!
  • git commit -m <커밋메세지> : S.A(Index)에 있는 파일을 .git Directory(Repository)에 추가

    	> git commit -a -m <커밋메세지> : git add 까지 한번에
  • git rm <파일이름> : Git에서 관리하는 파일 삭제.
    W.D와 S.A(Index)의 파일을 삭제하고 Commit

    > 로컬에서 먼저 삭제하면 Git은 정신못차려벌임;;;
    git rm 또 해줘야함!
  • git mv <예전이름> <새이름> : Git에서 파일이름 변경

    	> 마찬가지로 로컬에서 변경/이동하면 Git은 어리둥절;;; git mv 또 해줘야함!

profile
🖐

0개의 댓글