Git

정한별·2024년 6월 15일
0

Version Control System

버전관리시스템

• 형상 관리 시스템 (Configuration Management Systems)
• 버전 관리 시스템 (Version Control Systems)
• Source Data + History
• 협업, 작업 추적, 복구 등이 가능

Local Version Control Systems

• 내 컴퓨터에서 버전관리 가능 → 내 컴퓨터 하드가 날아가면 전체코드 사라짐
• 버전은 관리되지만, 협업은 여전히 어려움.

Centralized Version Control Systems

• 협업이 가능해짐
• commit 하는 순간 배포되어 다수에게 버그 유발 가능 (서버로 바로 Commit)
• 인터넷이 안되면 작업이 불가능
• 자신만의 version history 를 가질수 없음

Distributed Version Control Systems

• Commit 하더라도 개인저장소 내에 적용됨
• 원하는 순간에 배포(Push) 가능
• 오프라인에서도 작업 가능
• 자신만의 version history 를 가짐

CVS (Concurrent Versions System)

• 1980년대 만들어진 형상관리툴
• Commit 중 오류 발생 시 Rollback 이 되지않는 등의 문제
이후 SVN 으로 대체됨

SVN (Subversion)

https://subversion.apache.org/
• 2000년대 만들어졌고 현재까지 두루 사용 중

Git (Global Information Tracker)

https://git-scm.com/
• SVN 보다 빠른 속도와 많은 기능을 지원
• 요즘 기업들은 대부분 Git 을 사용 중

Git 의 버전관리

버전 관리 시스템의 데이터 저장 방식

파일의 Diff 를 시간순으로 관리

버전이 증가할 때마다 수정된 파일의 diff을 가지고 관리를 해왔다.
↪️ 문제점- 원본을 가지고 있는게 아니라 diff을 가지고 있기 때문에 특정시점으로 돌아갔을 때 그 상태의코드를 얻으려면 계산량이 많았다.

Git 의 데이터 저장 방식

  • 파일을 저장하는 순간의 스냅샷을 저장
  • 파일의 변경사항이 없는 경우, 파일을 새로 저장하지 않음
    (성능을 위해)

  • a를 수정 했을 때 a'라는 버전을 가지게 된다.
    변경 사항이 있을 때 diff을 가지는 것이 아니라 그 버전에서의 스냅샷이라는 그 상태를 가지게 된다.
    ↪️ 많은 성능 상향

Git 구성 요소

  • Working Directory - 폴더에서 파일이 보이는 부분을 말한다.
  • Staging Area, .git Directory - git이 관리하는 물리적인 구성요소들
  • .git Directory - 버전이 매겨지고 관리하는 단계

📌 Working Directory에 파일을 수정을 하고 나면 git에 add를
해야 Staging Area라는 곳에 파일이 등록이 된다.
Working Directory에 있어야 커밋 가능

Git 에서 파일의 상태

  • Untracked 상태 - git에 아무 것도 등록되지 않은 상태 관리대상이 아닌 git한테 add를 해서 알려준다. 그러면 Tracked 상태가 된다.

Tracked 상태에서 커밋을 하면 버전이 매겨지게 된다.
또 수정을 하면 modified 상태가 된다.
이 상태에서는 커밋 불가능 staged상태가 되어야 가능

0개의 댓글

관련 채용 정보